Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.04.2012, 15:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Проблема с PIC16f676
Сообщение от xxparadoxx
|
Конфиг устанавливал непосредственно в программаторе (SPRUT). Выбрал внутренний генератор и внутрисхемное подключение MCLR
|
А сторожевой таймер отключили?
По программе я у Вас не увидел команды CLRWDT. Следовательно, если сторожевой таймер не отключен, то он будет срабатывать каждые 18 мс.
|
|
|
|
18.04.2012, 16:00
|
|
Частый гость
Регистрация: 12.05.2009
Сообщений: 44
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Проблема с PIC16f676
Еще обратите внимание на настройку вывода mclr. И при входе в прерывание нужно сохранять как минимум регистры STATUS и W, а при выходе востонавливать их. В даташите описано.
Последний раз редактировалось korsaj; 18.04.2012 в 16:03.
|
|
|
|
18.04.2012, 16:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Проблема с PIC16f676
Ну и пожалуй последний вопрос - резисторы подтяжки есть?
Цитата:
|
CLRF PORTC ;Присваиваем всем портам С нуль на выходе
|
|
|
|
|
18.04.2012, 18:18
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Проблема с PIC16f676
Сообщение от xxparadoxx
|
прошу указать на ошибки.
|
"Мы скачымо на коныках в ондатровых будёновках!" (С)
Код:
|
ORG 0000h ;Переходим в нулевую ячейку
GOTO INI ;Запись в нулевую ячейку комманды
;перехода на метку INI
ORG 0004h ;Переходим в ячейку прерываний
GOTO PRER ;В ней прописываем метку обработчика
;прерываний
INI ;Метка начала пользовательской прораммы
;(инициализация системных регистров)
REG EQU 0022h ;Определяем переменную для работы с TMR0
CLRF REG ;Очищаем её
IOREG EQU 0023h ;Определяем переменную для определения кнопки
CLRF IOREG ;Очищаем её содержимое
BSF STATUS,5 ;Переходим в банк 1
CLRF ANSEL ;Переводим все порты с АЦП в режим
;цифрового входа/выхода
MOVLW b'00000111' ;Маска для определения направления передачи
;данных портов С (1=вход, 0=выход)
MOVWF TRISC ;Заносим маску в соответствующий регистр
MOVLW b'11000111' ;Заносим маску для объявления предделителя
MOVWF OPTION_REG ;Заносим маску в регистр
MOVLW b'10100000' ;Маска для разрешения прерываний от TMR0
MOVWF INTCON ;Заносим маску в ругистр |
И куда вы попадаете???
|
|
|
|
18.04.2012, 19:21
|
|
Прописка
Регистрация: 09.12.2009
Сообщений: 109
Сказал спасибо: 16
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема с PIC16f676
Сообщение от st__1
|
"Мы скачымо на коныках в ондатровых будёновках!" (С)
Код:
|
ORG 0000h ;Переходим в нулевую ячейку
GOTO INI ;Запись в нулевую ячейку комманды
;перехода на метку INI
ORG 0004h ;Переходим в ячейку прерываний
GOTO PRER ;В ней прописываем метку обработчика
;прерываний
INI ;Метка начала пользовательской прораммы
;(инициализация системных регистров)
REG EQU 0022h ;Определяем переменную для работы с TMR0
CLRF REG ;Очищаем её
IOREG EQU 0023h ;Определяем переменную для определения кнопки
CLRF IOREG ;Очищаем её содержимое
BSF STATUS,5 ;Переходим в банк 1
CLRF ANSEL ;Переводим все порты с АЦП в режим
;цифрового входа/выхода
MOVLW b'00000111' ;Маска для определения направления передачи
;данных портов С (1=вход, 0=выход)
MOVWF TRISC ;Заносим маску в соответствующий регистр
MOVLW b'11000111' ;Заносим маску для объявления предделителя
MOVWF OPTION_REG ;Заносим маску в регистр
MOVLW b'10100000' ;Маска для разрешения прерываний от TMR0
MOVWF INTCON ;Заносим маску в ругистр |
И куда вы попадаете???
|
под строку INI, а в чем тут проблема?
|
|
|
|
18.04.2012, 19:22
|
|
Прописка
Регистрация: 09.12.2009
Сообщений: 109
Сказал спасибо: 16
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема с PIC16f676
Сообщение от omercury
|
Ну и пожалуй последний вопрос - резисторы подтяжки есть?
|
они есть физически на схеме
|
|
|
|
18.04.2012, 19:25
|
|
Прописка
Регистрация: 09.12.2009
Сообщений: 109
Сказал спасибо: 16
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема с PIC16f676
Сообщение от alvadep
|
А сторожевой таймер отключили?
По программе я у Вас не увидел команды CLRWDT. Следовательно, если сторожевой таймер не отключен, то он будет срабатывать каждые 18 мс.
|
а вот пёсика то и не отключил, спасибо, попробую
|
|
|
|
18.04.2012, 19:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Проблема с PIC16f676
1. В конце блоков обработки нажатия кнопок надо вставлять задержку, для защиты от дребезга. Впрочем, в данной программе это не существенно. Ведь все равно, когда кнопка будет отпущена полностью, программа будет отрабатывать именно ее функцию.
2. В начале обработки прерывания надо сохранять в стеке хотя бы аккумулятор. А в конце обработки прерывания восстанавливать его значение.
3. CLRF PORTC ;Обнуляем выходы порта С
BSF PORTC,3 ;Зажигаем первый диод
Две модификации порта подряд друг за другом - не рекомендуется. Между ними надо вставить пустышку.
Особенно уязвимые в этом отношении места в программе, где отрабатывается мигание светодиодов:
RC3ON0 BSF PORTC,3
BCF PORTC,4
После первой модификации состояние вывода еще не успевает установиться, и тут же оно фиксируется второй командой. Поэтому и получаются неустойчивые значения.
|
|
|
|
18.04.2012, 21:34
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Проблема с PIC16f676
Сообщение от xxparadoxx
|
под строку INI, а в чем тут проблема?
|
В общепринятом оформлении...
В папке ..\Microchip\MPASM Suite\Template\Code есть файл 16F676TEMP...
|
|
|
|
18.04.2012, 21:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 17.01.2006
Сообщений: 1,719
Сказал спасибо: 21
Сказали Спасибо 1,390 раз(а) в 791 сообщении(ях)
|
Re: Проблема с PIC16f676
...в 676 есть компаратор - его вы отключили.???
__________________
С уважением Vlad
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:48.
|
|