Не работают мигалки ком
Добрый день!
Подобную прогу сперва написал для ПИКа18Ф4550 — там всё работает. Мне скинули проверенный конфиг. Потом решил выродить такое же для ПИКа 12Ф683. И ничего. Прога горящеко светика работает без проблем. Даже без конфига. А мигалка чего-то отказывается(я думаю дело в конфиге). В дебаггере всё проходит нормально, задержки работают.
Вот выкладываю текст своего творчества(текстом и ассемблером для удобства).
Надеюсь, кто-то поможет с рабочим конфигом. Пытался сам написать — но там пару сотен директив и я просто не знаю что от туда брать. Да и желания особого нет разбираться. Нужен просто рабочий конфиг и всё.
list p=12f683
#include «p12f683.inc»
__CONFIG _FCMEN_OFF & _IESO_OFF & _BOD_ON & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_ON & _INTOSCIO
;конфиг скопировал из папки МПлаб. что он значит без понятия.
delcntrl equ 20; присвоить ячейке 20(банк №0)
zhopa equ 21; присвоить ячейке 21
gokovo equ 22; присвоить ячейке 22
;.
org 0x00; начать с 0
movlw b’11111011′;запись в аккумулятор
bsf STATUS,RP0; выбор банка №1 для работы с ТРИСИО
movwf TRISIO; установить разряд 2 порта на выход
movlw 0x00; очистить аккумулятор
bcf STATUS,RP0; выбрать банк №0 для работы с портами(см ниже)
Kavoga
bsf GPIO,GP2; включить GP2
a ;метка
call delay; вызов подпрограммы задержки
movlw D’200′; записать десятичное 200
movwf zhopa; записать 200 в ячейку zhopa
decfsz zhopa,1; вычесть из ячейки zhopa единицу 199 раз.
;потом перепрыгнуть 1 команду
goto a ; переход на метку а(вызов подпрограммы задержки 199 раз)
bcf GPIO,GP2; выключить GP2
boo ;метка
call delay; вызов подпрограммы задержки
movlw 0x00; очистить аккумулятор
movlw D’200′; записать дес. 200
movwf gokovo; записать дес. 200 в ячейку gokovo
nop; пропуск команды
nop
nop
nop
nop
decfsz gokovo,1; ычесть из ячейки gokovo единицу 199 раз.
;потом перепрыгнуть 1 команду
goto boo; переход на меткку boo
goto Kavoga; переход на начало цикла.
;//////////
delay; подпрограмма задержки
movlw 0x00; очистить аккумулятор
movlw D’250′ ;записать в аккумулятор дестичное 250
movwf delcntrl ; записать 250 в ячейку delcntrl
del ;цикл задержики
NOP; пропуск команды
NOP
nop
nop
decfsz delcntrl,1 ; счётчик. отнимать 1 от 250. когда результат=0 — перепрыгнуть 1
goto del; переход на метку del(249 раз)
return; возврат из подпрограммы
end; зе енд.
Вложения: |
Комментарий к файлу: БЛОКНОТИК avoga.asm [1.79 KiB] Скачиваний: 288 |
_________________
Успех — императив!
Реклама | ||
| ||
urry | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Карма: 22 |
|