Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
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((`?
\ 00000136 .... LDI R17, HIGH((`?
\ 00000138 .... LDI R18, BYTE3(`?
\ 0000013A .... RCALL ?Subroutine35
Ответы