Вот код.
Где я не прав?
Код
#include <mega32.h>
#include <delay.h>
#include <stdlib.h>
#include <stdio.h>
#include <disp.h>
#define MAX_DEVICES 5
#define SEARCH_ROM 0xF0
#define DS1990_FAMILY_CODE 1
//Global vaiable defination
unsigned char devices;
// 1 Wire Bus functions
#asm
.equ __w1_port=0x12;PORTD
.equ __w1_bit=2
#endasm
#include <1wire.h>
unsigned char rom_code[MAX_DEVICES,9];
u08 variable;
ui16 textcolor; // color of text
ui16 backcolor; // color of background
ui16 varvar;
unsigned char str;
unsigned char i,j,a,b,c,d;
unsigned long serial;
eeprom unsigned char E_rom_code[5,9];
unsigned char eeprom *ptr_to_eeprom;
unsigned char *ptr_to_ram;
unsigned char rom_code2[MAX_DEVICES,9];
void main(void)
{
backcolor=0xBDF7;
textcolor=blue;
DDRA.0=1;
PORTA.0=1;
DDRD.2=0;
lcd_init();
lcd_clr();
fill_screen(0xbdf7);
for (i=0;i<5;i++) //Заполняю массив
{
for (j=0;j<9;j++)
{
rom_code[i][j]=i;
}
}
for (i=0;i<5;i++) //Вывожу содержимое массива в левую часть экрана
{
for (j=0;j<9;j++)
{
lcd_setxy(10+j*7,120-i*20);
lcd_str_ram(rom_code[i][j],f8x14, textcolor);
}
}
ptr_to_ram=rom_code; // Записываю переменную rom_code в eeprom
ptr_to_eeprom=E_rom_code;
while (*ptr_to_ram)
*ptr_to_eeprom++=*ptr_to_ram++;
// copy the string e from EEPROM to
// the string r in RAM
ptr_to_eeprom=E_rom_code; // читаю из eeprom в новый массив rom_code2
ptr_to_ram=rom_code2;
while (*ptr_to_eeprom)
*ptr_to_ram++=*ptr_to_eeprom++;
for (i=0;i<5;i++) // Вывожу в правую чать экрана содержимое rom_code2
{
for (j=0;j<9;j++)
{
lcd_setxy(100+j*7,120-i*20);
lcd_str_ram(rom_code2[i][j],f8x14, textcolor); //выводятся нули
}
}
}
#include <delay.h>
#include <stdlib.h>
#include <stdio.h>
#include <disp.h>
#define MAX_DEVICES 5
#define SEARCH_ROM 0xF0
#define DS1990_FAMILY_CODE 1
//Global vaiable defination
unsigned char devices;
// 1 Wire Bus functions
#asm
.equ __w1_port=0x12;PORTD
.equ __w1_bit=2
#endasm
#include <1wire.h>
unsigned char rom_code[MAX_DEVICES,9];
u08 variable;
ui16 textcolor; // color of text
ui16 backcolor; // color of background
ui16 varvar;
unsigned char str;
unsigned char i,j,a,b,c,d;
unsigned long serial;
eeprom unsigned char E_rom_code[5,9];
unsigned char eeprom *ptr_to_eeprom;
unsigned char *ptr_to_ram;
unsigned char rom_code2[MAX_DEVICES,9];
void main(void)
{
backcolor=0xBDF7;
textcolor=blue;
DDRA.0=1;
PORTA.0=1;
DDRD.2=0;
lcd_init();
lcd_clr();
fill_screen(0xbdf7);
for (i=0;i<5;i++) //Заполняю массив
{
for (j=0;j<9;j++)
{
rom_code[i][j]=i;
}
}
for (i=0;i<5;i++) //Вывожу содержимое массива в левую часть экрана
{
for (j=0;j<9;j++)
{
lcd_setxy(10+j*7,120-i*20);
lcd_str_ram(rom_code[i][j],f8x14, textcolor);
}
}
ptr_to_ram=rom_code; // Записываю переменную rom_code в eeprom
ptr_to_eeprom=E_rom_code;
while (*ptr_to_ram)
*ptr_to_eeprom++=*ptr_to_ram++;
// copy the string e from EEPROM to
// the string r in RAM
ptr_to_eeprom=E_rom_code; // читаю из eeprom в новый массив rom_code2
ptr_to_ram=rom_code2;
while (*ptr_to_eeprom)
*ptr_to_ram++=*ptr_to_eeprom++;
for (i=0;i<5;i++) // Вывожу в правую чать экрана содержимое rom_code2
{
for (j=0;j<9;j++)
{
lcd_setxy(100+j*7,120-i*20);
lcd_str_ram(rom_code2[i][j],f8x14, textcolor); //выводятся нули
}
}
}