Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Запись ds1820_rom_codes в EEPROM

Отправлено BATCOH 08 июля 2007 г. 18:12


День Добрый!
Пишу в CV_AVR.
МК=мега88.

// number of DS1820 devices
// connected to the 1 Wire bus
unsigned char ds1820_devices;
// DS1820 devices ROM code storage area,
// 9 bytes are used for each device
// (see the w1_search function description in the help)
unsigned char ds1820_rom_codes[MAX_DS1820][9];

После выполнения
ds1820_devices=w1_search(0xf0,ds1820_rom_codes);

нужно сохранить в еепром
двумерный массив ds1820_rom_codes.
в еепром создаю массив для записи ром кодов:
eeprom unsigned char v_ds1820_rom_codes[MAX_DS1820][9];

потом в цикле for пишу:
a2++;
v_ds1820_rom_codes[a2][0]=ds1820_rom_codes[a2][0];
sprintf(buffer,"E%03u N%03u",&v_ds1820_rom_codes[a2][0],&ds1820_rom_codes[a2][0]);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(buffer);

Но на лцд выводится:

E008 N512
E017 N521
E026 N530
E035 N539

(E-что в еепром)
Вы видите что числа отличаются на 504?

Но если сравнивать содержимое v_ds1820_rom_codes и ds1820_rom_codes:
a3++;
if(ds1820_rom_codes[a3][0]==(v_ds1820_rom_codes[a3][0]))
{
counter0++;
sprintf(buffer,"N%u OK",counter0);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(buffer);
}
То равенство выполняется!!!

Почему?

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru