Проблемы с компиляцией.
Re: Проблемы с компиляцией.
перед выходом из прерывания нужно восстановить регистры. вместо RETFIE где я пометил надо GOTO beg1 а там и выход.
- Реклама
- Rimsky
- Грызет канифоль
- Сообщения: 299
- Зарегистрирован: Вт июн 15, 2010 07:16:42
- Откуда: Иркутск
- Контактная информация:
Re: Проблемы с компиляцией.
Может кто подскажет (кто разбирался), что это за процедура?
; clrf ANSEL ;Включение вводов как цифровые
movlw B'10000000'
movwf OSCCAL^90h
bcf STATUS,5 ;Выбор банка 0
movlw B'10100000' ;Прерывание по переполнению таймера
Я обычно делаю так
; clrf ANSEL ;Включение вводов как цифровые
movlw B'10000000'
movwf OSCCAL^90h
bcf STATUS,5 ;Выбор банка 0
movlw B'10100000' ;Прерывание по переполнению таймера
Я обычно делаю так
Код: Выделить всё
RESET:
call 0x3FF
banksel OSCCAL
movwf OSCCAL
goto INIT_MPU- Rimsky
- Грызет канифоль
- Сообщения: 299
- Зарегистрирован: Вт июн 15, 2010 07:16:42
- Откуда: Иркутск
- Контактная информация:
Re: Проблемы с компиляцией.
И вообще-то вектор сброса по нулевому адресу .org 0x00, а не .org 0x01 !!!
- К@Т
- Говорящий с текстолитом
- Сообщения: 1573
- Зарегистрирован: Сб окт 09, 2010 12:33:48
- Откуда: Незалежная
Re: Проблемы с компиляцией.
Все замечания исправил,но не работает!При подаче питания он сразу задирает 6(gp1) ногу(вкл.зумер),и 4(gp3) ногу опускает(хотя это вход).Кароче два входа(5(gp2) и 4(gp3) ноги начинают принимать код еслi на 2(gp5) ноге единица,если код верен должна подниматса 7(gp0) нога,если не верен то 6(gp1),а если 5 раз неверен то поднимаетса 3(gp4) нога.Помогите найти ошибки.
- Вложения
-
- k.rar
- (3.45 КБ) 133 скачивания
У кошки 4 ноги и хвост-плюс,минус,вход,выход,а хвост-земля.....Надо переходить с китайской бурды на канифоль.......[url=http://infobar.hsdn.org/][img]http://static.hsdn.org/infobar/350x60.gif[/img][/url]
Re: Проблемы с компиляцией.
у вас описание в #define не соответствует конфигурации
С банками в разделе pusk тоже не дружите ( а я обрашал ваше внимание)
call SIR01 ;При включении сирена вкл. 3 раза.
вы сами её включаете.
***************************************
movlw ZAD3 ;Записываем в регистр
movwf DOP3 ;задержки 3 сек.
bsf zad3 ;Устанавливаем флаг 3 сек.
bcf zadv3 ;Сбрасываем флаг вкл. таймера 3 сек.
int3 btfss zadv10 ;Команда включения таймера 10 сек. есть ?
retfie ;Нет
decfsz DOP10,f ;Да. -1 и если =0 пропускаем следующуюю команду.
retfie ;Нет.
********************
выход по RETFIE попрежнему без восстановления регистров
при входе в обработчик прерываний нужно запрещать прерывания и разрешать когда пройдут нужные процедура. У вас прога в постоянной обработке прерываний.
С банками в разделе pusk тоже не дружите ( а я обрашал ваше внимание)
call SIR01 ;При включении сирена вкл. 3 раза.
вы сами её включаете.
***************************************
movlw ZAD3 ;Записываем в регистр
movwf DOP3 ;задержки 3 сек.
bsf zad3 ;Устанавливаем флаг 3 сек.
bcf zadv3 ;Сбрасываем флаг вкл. таймера 3 сек.
int3 btfss zadv10 ;Команда включения таймера 10 сек. есть ?
retfie ;Нет
decfsz DOP10,f ;Да. -1 и если =0 пропускаем следующуюю команду.
retfie ;Нет.
********************
выход по RETFIE попрежнему без восстановления регистров
при входе в обработчик прерываний нужно запрещать прерывания и разрешать когда пройдут нужные процедура. У вас прога в постоянной обработке прерываний.
- Реклама
- К@Т
- Говорящий с текстолитом
- Сообщения: 1573
- Зарегистрирован: Сб окт 09, 2010 12:33:48
- Откуда: Незалежная
Re: Проблемы с компиляцией.
Писал сбодуна(поэтому много красоты),а теперь никак разобратса немогу в этом творении.
Она должна 3 раза включитса и 3 раза выключитса,а в реале она включаетса и не выключаетса.call SIR01 ;При включении
сирена вкл. 3 раза.
вы сами её включаете.
А вчём ошибка собсенно?у вас описание в #define не
соответствует конфигурации
С банками в разделе pusk
тоже не дружите
Ничего не понял.У вас прога в
постоянной обработке
прерываний .
У кошки 4 ноги и хвост-плюс,минус,вход,выход,а хвост-земля.....Надо переходить с китайской бурды на канифоль.......[url=http://infobar.hsdn.org/][img]http://static.hsdn.org/infobar/350x60.gif[/img][/url]
Re: Проблемы с компиляцией.
потом наступает прерывание по таймеру которое никогда не заканчиваетсяОна должна 3 раза включитса и 3 раза выключитса,а в реале она включаетса и не выключаетса.
дело батя в следующемА вчём ошибка собсенно?
;**************************************************************
; Bходные сигналы
#define kn0 GPIO,3 ;Кодовая кн.=0 ВХОД
#define kn1 GPIO,2 ;Кодовая кн.=1 ВХОД НАСТРОЕН НА ВЫХОД
#define zam GPIO,5 ;замок зажиг1. ВЫХОД
#define blok GPIO,0 ;Сигнал блокировки двиг. ВЫХОД
#define sirena GPIO,4 ;Сирена ВЫХОД НАСТРОЕН НА ВХОД
#define zum GPIO,1 ;Зуммер. ВЫХОД НАСТРОЕН НА ВХОД
;******************************************************
movlw B'011010' ;W=
movwf TRISIO ;RAO-RB4 вход
************************************************************
здесь важно понимать как войти в прерывание и как выйти из него чтобы там не зависнутьНичего не понял.
- Rimsky
- Грызет канифоль
- Сообщения: 299
- Зарегистрирован: Вт июн 15, 2010 07:16:42
- Откуда: Иркутск
- Контактная информация:
Re: Проблемы с компиляцией.
Если плаваете в банках, мой Вам совет пишите дерективу вот так:
banksel ANSEL
clrf ANSEL
banksel PORTB
clrf PORTB
и т.д.
Пусть где-то перебор, но зато не надо париться, а захотите оптимизировать код лишнее поубираете.
banksel ANSEL
clrf ANSEL
banksel PORTB
clrf PORTB
и т.д.
Пусть где-то перебор, но зато не надо париться, а захотите оптимизировать код лишнее поубираете.


