FDA (14.06.2006 10:58, просмотров: 1482)
Не могу прочитать данные из памяти SED1335 Написал вот такую функцию (контроллер PIC18F452):
char GetLCDData (void)
{
char b;
TRISD = 0xFF;
A0 = 0;
RD = 0;
NOP();
NOP();
b = PORTD;
RD = 1;
TRISD = 0;
return b;
}
Так вот она возвращает неправильное значение. Например, в памяти SED1335 содержится значение FFh, функция возвращает 7Fh, если 8Fh, то функция вернёт вообще 4Fh!!!
Чёрти что! Я мог бы ещё понять, что старший бит где-то нулём забивается, но тут что-то невероятное.
Значения же меньше 80h возвращаются верно!
В чём может быть проблема?