АвторСообщение



Пост N: 1
Зарегистрирован: 24.01.15
Рейтинг: 0
ссылка на сообщение  Отправлено: 24.01.15 15:11. Заголовок: Проблемы с OPTION_REG


Please, прошу помощи!!! Осваиваю PIC12F629. Написал простейшую программу - мигание светодиода. Работает крайне неустойчиво. Работа зависит от емкостных наводок - подносишь палец к "камню", меняется режим работы - то мигает, то горит непрерывно или вообще гаснет.
Долго разбирался, в результате заметил такую особенность: после включения Debagger -> MPLAB SIM и трансляции ассемблерной программы все биты регистра OPTION_REG устанавливаются в "1" и никакими силами перенастроить этот регистр не удается. Привожу исходный текст программы с внесенными изменениями, которыми сбросить хотя бы один бит регистра. Эффект равен нулю. Все команды по регистру OPTION_REG игнорируются.

List P=PIC12F629
__CONFIG 00FB5h
;CONFIG _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON
;************* ПЕРЕМЕННЫЕ ***********************
CBLOCK 0x20
Reg_1
Reg_2
Reg_3
ENDC

PRO equ 5
STATUS equ 03h ; Регистр выбора банка. (банк любой)
GPIO equ 05h ; Регистр управления защелками порта. (банк 0)
CMCON equ 19h ; настройка каналов GPIO end на цифровые вх/вых (банк 0)
TRISIO equ 05h ; Регистр выбора направления работы выводов порта. (банк 1)
INTCON equ 8Bh ; Регистр разрешения(1)/запрета(0) прерываний (любой банк)
OSCCAL equ 10h ; Регистр хранения калибровочной константы (банк 1)
OPTION_REG equ 11h ; настройка подтгивающих резисторов (банк 1)
WPU equ 15h ; настройка подтгивающих резисторов побитово (банк 1)

;****** Калибровка Генератора ******************************************************
org 0
bsf STATUS,5 ; Выбор банка 1
clrf OPTION_REG

Call 3FFh ; Загрузить калибровочную константу в w
movlw 20h ; загрузка константы в W
movwf OSCCAL
movlw 0x0E ; загрузка константы в W
movwf OPTION_REG
clrf OPTION_REG
bsf OPTION_REG,7
bsf OPTION_REG,6
bsf OPTION_REG,5
bsf OPTION_REG,4
bsf OPTION_REG,0
bsf OPTION_REG,0
bsf OPTION_REG,0
bsf OPTION_REG,0
;******** Установка направления работы ног ******************************
bcf STATUS,5 ; включен банк О
clrf INTCON ; запретить все прерывания
clrf GPIO ; ИНИЦИАЛИЗАЦИЯ ЗАЩЕЛОК GPIO
;bcf GPIO,2 ; сбросить бит GP2 (5-я нога)
movlw 0x07 ; загрузка константы в W
movwf CMCON ; каналы GPIO – цифровые входы/выходы
bsf STATUS,5 ; включен банк 1
movlw b'111011' ; загрузка константы в W
movwf TRISIO ; инициализация направления каналов GPIO
Clrw ; очистить W

clrf WPU ; настройка подтягивающих R
movlw 0xFF ; загрузка константы в W
movwf WPU ; настройка подтягивающих R
movlw b'00001111' ; загрузка константы в W
movwf OPTION_REG ; настройка регистра OPTION_REG
bcf OPTION_REG,7 ; загрузка константы в W
bcf STATUS,5 ; включен банк О

;********** Основная программа *******************************************
m1 clrwdt ; сброс сторожевого таймера
bsf GPIO,2 ; установить бит GP2
call Pause ; переход на метку (с возвратом)
bcf GPIO,2 ; сбросить бит GP2
call Pause ; переход на метку (с возвратом)
goto m1

;delay = 500000 machine cycles
Pause movlw .01 ;85
movwf Reg_1
movlw .01 ;138
movwf Reg_2
movlw .01 ;3
movwf Reg_3
wr decfsz Reg_1, F
goto wr
decfsz Reg_2, F
goto wr
decfsz Reg_3, F
goto wr
clrwdt ; сброс сторожевого таймера
return
end ; конец программы

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


moderator




Пост N: 176
Зарегистрирован: 01.03.11
Рейтинг: 0
ссылка на сообщение  Отправлено: 24.01.15 17:19. Заголовок: PRO - нет такого бит..


PRO - нет такого бита. Опечатка в русском переводе. Есть бит RP0.
Не надо прописывать адреса регистров спец назначения. Закомментируйте их или удалите. А вместо этого вставьте в программу после list p=12F675 строчку #include <P12f629.inc>. Тем самым вы подключаете к проекту файл .inc с названиями и адресами всех регистров спец назначения и их битов.
Кстати, правильное написание и тех и других можно посмотреть в этом же файле.
И всё будет работать.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия