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

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

Глючу к утру, подскажите по Си

Отправлено groovy 07 декабря 2006 г. 05:23


Кусок проги

eepromGenericRead( ... unsigned char *data ...) {

char ch = i2cGetReceivedByte();
if (*data != ch)
TRACEWS1608("[EEPROM] Read: data verify error ", *data, ch);
}

Выводит текст

[EEPROM] Read: data verify error 004B 4B

Значения же одинаковые, то что 004B начинается с нолей нормально, функция вывода так работает.

Ассемблерный листинг IAR AVR ниже

252 char ch = i2cGetReceivedByte();
\ 00000124 .... RCALL ?Subroutine24
\ ??CrossCallReturnLabel_72:
\ 00000126 2F30 MOV R19, R16
253 if (*data != ch) {
\ 00000128 01F4 MOVW R31:R30, R9:R8
\ 0000012A 8100 LD R16, Z
\ 0000012C 1703 CP R16, R19
\ 0000012E F091 BREQ ??eepromGenericRead_22
254 TRACEWS1608("[EEPROM] Read: data verify error ", *data, ch);
\ 00000130 2F40 MOV R20, R16
\ 00000132 E050 LDI R21, 0
\ 00000134 .... LDI R16, LOW((`?` + 312))
\ 00000136 .... LDI R17, HIGH((`?` + 312))
\ 00000138 .... LDI R18, BYTE3(`?`)
\ 0000013A .... RCALL ?Subroutine35


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

Ответы


Отправка ответа

Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

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

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

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