Ответ: Ой. Ошибка. Повторяю.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено anatolyn 27 марта 2004 г. 14:50
В ответ на: например регистры нужные не сохраняешь или банки/страницы ... отправлено DSN 27 марта 2004 г. 13:24

Вот она. Основная программа - зацикленный nop. Все прочие прерывания запрещены. STATUS и W сохраняю. Переключение портов прекрасно вижу на осцилографе. В инициализации (которую один раз вызываю)еще portc,4 в высокий/низкий устанавливаю и вижу, что portc,4 через время примерно равное time-out от PWRT - переключается. Отсюда делаю вывод, что произошел reset.
RESET vector - 000h, INTERRUPT vector - 004h, main - 005h

int_service
bcf status, 5
loop_int
bcf intcon, 7
btfsc intcon, 7
goto loop_int
MOVWF W_TEMP
SWAPF STATUS,W
BCF STATUS,RP0
MOVWF STATUS_TEMP
btfsc pir1, 0
call int_tmr1
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
bsf intcon, 7
retfie

int_tmr1 ;обработка прерывания от TMR1 (0,25сек)

bcf status, 5
bcf pir1, 0
movlw h'DC'
movwf tmr1l
movlw h'0B'
movwf tmr1h ;восстановлен TMR1
bsf portc, 2
bcf portc, 2
bsf portc, 3
bcf portc, 3
bsf portc, 4
bcf portc, 4
return



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru