Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829
При работе программы не работает аппаратный I2C. Насколько понял косяк в обработчике прерывания, в симуляторе Keil в I2STAT постоянно перескакивает из 0х8 в 0х20. Т.е. в железе должен быть виден по осциллографу хотя бы START I2C, а его нет. И можно ли в обработчике использовать внешние функции типа printf? В архиве моя программа.
Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829
В симуляторе да попадает, а реально в железе не могу посмотреть - сгорел программатор-отладчик. Линия SDA подтянута к 3.3В, а линия SCL нет, т.к. по спецификации на HP03S она не должна быть подтянута, хотя это не долго проверить.
Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829
Подтянул, все заработало. НО, при первом чтении одни 0, при последующих данные появляются, но последний байт может изменяться при чтении. Попробую сделать синхронизацию обработчика I2C с читаемыми данными, скорее всего косяк здесь зарылся. yashok СПАСИБО за помощь.
Nixon тоже спасибо, надо доверять спецификации на I2C, а не даташиту на железяку.