[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
-Tумблер- 07 мая 2006 г. 23:05
В ответ на: Ответ: Хороший вопрос! отправлено
<font color=gray>grenad</font> 07 мая 2006 г. 20:33
После записи слишком медленно сбрасывается флаг EERDY. (И про это я в документации ничего не нашел.) Поэтому в отличии от 8252 надо дождаться 0 флага:
void eeprom_rdy (void) { for (;;) {if ((EECON and (1 << EERDY)) == 0) break;} for (;;) {if ((EECON and (1 << EERDY)) != 0) break;} }
В 8253 имеет место еррата - WATCH-DOG период всегда минимален и не зависит от программирования. Но мне это не мешает. :) Возможно имеются и другие особенности, на которые я не наткнулся. Но что касается UART-а и таймеров то тут вроде все по старому. С прерываниями у меня тоже не было проблем.