Показать сообщение отдельно
Старый 16.09.2011, 20:08   #9
syv
Guest
 
Сообщений: n/a
По умолчанию Re: 16f877 подскажите по прерываниям

Цитата:
Сообщение от alx71 Посмотреть сообщение
Да.
В Вашей программе записи в EEPROM присутствуют многочисленные циклы ожидания. Я их оставил в Вашем коде.
Код:
...
    bsf        STATUS,RP0
    bsf        STATUS,RP1
    BTFSC    EECON1,WR
    GOTO    $-1
    BTFSC    EECON1,RD
    GOTO    $-1
  ...
    BTFSC    EECON1,WR
    GOTO    $-1
....
    return
err_eeprom:
....
    return
Эти циклы, замкнутые на себя, впустую съедают процессорное время.
И при этом удлиняют по времени обработчик прерывания из которого вызывается эта функция.
Это не правильно.
Оптимальное решение лежит в использовании прерываний от записи в EEPROM.
Не понятно так же назначение первых двух циклов ожидания.
  Ответить с цитированием