skipped
skipped
Последний раз редактировалось muzzy; 14.03.2009 в 16:26.
Я купил еще один PIC, прошил и получил тот же результат.
Схема собрана правильно т.к. при включении/выключении лампочки - на входе GP5 появляются соответствующие уровни лог. 1 и 0
А при появлении на GP2 лог. 1 - срабатывает нажатие кнопки и вход монитора переключается.
Поэтому вопрос - есть ли тут живые люди, у которых данная прошивка(1+2) работает?
Последний раз редактировалось muzzy; 14.03.2009 в 16:15.
А чем ты выход проверяешь?
start call 3FFh ;берем калибровочную константу
movwf OSCCAL
call InitPorts
clrf gpio
clrf index
nxt CLRWDT
btfsc index,0 ; проверить идитификатор
goto enbl
enbl btfsc gpio,back ; проверить вкл задней скорости
call cicle
goto nxt
;************************************************* *************************
cicle CLRWDT
btfss gpio,back ; проверить вкл задней скорости
GOTO cicle
bsf gpio,botton ; нажатие кнопки
call delay1
bcf gpio,botton ; отпускание кнопки
call delay
cicl CLRWDT
btfsc gpio,back ; проверить выкл задней скорости
GOTO cicl
bsf gpio,botton ; нажатие кнопки
call delay1
bcf gpio,botton ; отпускание кнопки
call delay
bsf gpio,botton ; нажатие кнопки
call delay1
bcf gpio,botton ; отпускание кнопки
call delay
bsf gpio,botton ; нажатие кнопки
call delay1
bcf gpio,botton ; отпускание кнопки
call delay
return
;************************************************* ***************************
;************************************************* ***************************
delay movlw .15
movwf del1
intloop CLRWDT
btfss INTCON,T0IF ; проверить флаг таймера
goto intloop
bcf INTCON,T0IF ; обнулить флаг таймера
decfsz del2,f
goto intloop
decfsz del1,f
goto intloop
return
;************************************************* ***************************
delay1 movlw .255
movwf del1
intlp CLRWDT
decfsz del2,f
goto intlp
decfsz del1,f
goto intlp
return
;================================================= ======================
Последний раз редактировалось Chip; 15.03.2009 в 14:52.
Я тут почитал документацию и понял что если при старте программы не провести начальную инициализацию всех служебных регистров, то прошивка может вести себя по разному на разных экземплярах микросхем т.к. многие регистры после сброса имеют неопределенные значения...
Ну так понятно что без инициализации работать не будет вообще
Я просто не выкладывал инициализацию, выложил только кусок кода отвечающий за переключения
Последний раз редактировалось Chip; 15.03.2009 в 20:44.
Написал программу заново. Стабильной работы удалось добиться только проверяя наличие лог. 1 на входе GP5 в течении некоторого промежутка времени (проверяю в цикле 255 раз подряд).
Т.е. на входе проскакивают короткие импульсы(то ли статика, то ли наводки от компа), по которым твоя прошивка постоянно запускала ошибочные переключения.
Может стоит поставить конденсатор на входе?
Последний раз редактировалось muzzy; 16.03.2009 в 02:39.
Думаю что кондер не повредит
Эту тему просматривают: 5 (пользователей: 0 , гостей: 5)