Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
19.03.2012, 16:54
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 582
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: LPC2378 I2C
Сообщение от pambaru
|
А что за странный Wait у вас ?
Только обратил внимание.
Правильно же как то так будет:
unsigned int tI2C::Wait(void)
{
unsigned int status;
do {
status=I20STAT;
}while(!(status & (1‹‹3)));
I20CONCLR = (1‹‹3);
return status;
}
Разве нет ?
А то Вы I20CONSET проверяете.
|
Проверяю бит SI в I20CONSET...
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
19.03.2012, 17:19
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: LPC2378 I2C
Сообщение от alberio
|
Теперь работает, правда дисплей все еще не отвечает...
|
Классика...
Бросьте вы это УГ хардварный I2C... Тем более при работе с дисплеем... ничего вы там не выиграете...
И вы уверены, что ваш дисплей выдаёт ACK??? У TIC'ов... помню... с ACK "проблем" был...
|
|
|
|
19.03.2012, 17:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,371
Сказал спасибо: 85
Сказали Спасибо 634 раз(а) в 379 сообщении(ях)
|
Re: LPC2378 I2C
Сообщение от alberio
|
Проверяю бит SI в I20CONSET...
|
Ну да, точно.
Напутал, дело давнее.
Вы же не используете прерывание.
|
|
|
|
20.03.2012, 09:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,371
Сказал спасибо: 85
Сказали Спасибо 634 раз(а) в 379 сообщении(ях)
|
Re: LPC2378 I2C
Ну вот я после прерывания читаю статус и делаю
I2C1CONCLR=0x24 Assert acknowledge Clear bit., и START flag Clear bit.
Причем делаю это всегда, видимо значения не имеет, установлен реально этот бит или нет.
Потом читаю или пишу данные, если есть, или стоп бит отсылаю.
и потом I2C1CONCLR=0x08 сбрасываю прерывание. Но это я в прерывании работаю. Может Вам нужно это сразу делать.
Прерывание сбрасываю уже после записи или чтения данных. Не знаю, имеет ли это значение.
Этот код когда-то написал и использую всегда, проблем не возникало.
|
|
|
|
30.03.2012, 17:04
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 582
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: LPC2378 I2C
Переписал код на прерываниях. Работает, дисплей отвечает, данные записываются.
НО. Не работает адресация (установка адреса на дисплее), но ACK на команды приходит!. Что странно, но с таким же дисплеем на аврке все работает. Код для дисплея портировался именно оттуда.
Последовательность та же...
А так же странность с чтением - читается нормально, но вот потом "прерывальная машина i2c" виснет, и сделать что-либо невозможно. Работает только если после чтение переинициализировать интерфейс (выкл/вкл).
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
i2c
|
vsalomasov |
TTL и CMOS логика |
4 |
06.12.2010 14:14 |
I2C подскажите.
|
Andrewg |
Микроконтроллеры, АЦП, память и т.д |
35 |
13.08.2007 07:35 |
?-быстродействие I2C
|
giran |
Микроконтроллеры, АЦП, память и т.д |
1 |
15.05.2007 15:14 |
I2C
|
chipic128 |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.02.2005 02:19 |
I2C
|
zevs |
Микроконтроллеры, АЦП, память и т.д |
0 |
11.01.2005 16:11 |
Часовой пояс GMT +4, время: 17:43.
|
|