Спасибо посмотрел ваши файлы Вот код подлючения модуля и2с void Init_Ssp( void ) { TRISC |= 0b00011000; // ensure SDI and SD0 are inputs SSPIF = 0; // reset I2C based interrupt flag SSPCON2 = 0b00000000; // ensure all state bits are reset SSPSTAT = 0b00000000; // SSPADD = (( FOSC / (4 * i2c_bus_rate) )) - 1; // initialize i2c bus rate SSPCON = 0b00111000; // Master I2C mode } Вторая строчка снизу Что записать в SSPADD чтобы частота SCL была приблизительно 100кГц
Пишу программу для чтения из 24С04 Использую компилятор MicroC. Написал программу с помощью стандартных библиотек встроеных в этот компилятор. Начал отлаживать в Протеусе и при помощи логического анализатора посмотрел временные диаграммы. Все нормально но не работает Переписал программу програмно и все заработало Отличие от перво программы было в так называемом времени удержания данных(время когда линия scl меняет значение с 1 на 0 и до прихода нового бита информации на sda) Хотя оно по документации может равняться 0 но я его сдалел несколько наносек.
|