Привет всем заглянувшим) Пытаюсь организовать интерфейс I2C между lpc2106 и eeprom 24LC16B(не по прерываниям). Запись байта вроде бы проходит. Только не знаю, как проверить?? Чтение воплощаю через random read. По статусным кодам весь процесс протекает хорошо. Но вместо нужного мне байта в регистре I2DAT находится предыдущая информация (0xA1). Как достать нужный мне байт??? Кстати, среда программирования CrossWorks 1.3. Контрольные вопросы: 1.Как проверить пишутся данные в ПЗУ, если чтение не удается?? 2.Разумно ли пользоваться отладчиком в таких задачах?? 3.Как прочитать байт из внешнего ПЗУ?? Вот кусок проги :
I2CONSET=(1<<I2C_STA); // повторное состояние старт I2CONCLR=(1<<I2C_SI); // сброс бита прерывания I2CONCLR=(1<<I2C_STA); // чистим бит старта I2DAT=0xa1; // операция на чтение I2CONCLR=(1<<I2C_SI); // сброс бита прерывания data=I2DAT; // тут вся проблема: data =0xa1, вместо нужного мне записанного байта
|