Привет всем!!! Не получается инициализировать модуль компараторов в PIC16F627. Да и вообще с модулями у меня пожизни какие-то проблеммы. Все по datasheet-ту делаю, но что-то не так. Можно бы было в PROTEUS-е просимулировать, но и с ним я пока не совсем... В общем помогите!!! Суть программы: использую модуль компараторов, с встроенным в МК модулем опорного напряжения Uоп = 3В. А дальше - просто: произошло прерывание - зажечь светодиод, ну а нет - стоим на месте. Проблемма в том что светодиод мигает при том. что сигнал (>3В), да и любой сигнал, на вход компаратора вообще не подается! .... .... .... ... Start___clrf Intcon _______ bsf Status,RP0 _______ bcf Status,RP1 _______ movlw b'11101110' ;нижний диапазон,Uоп = 2,92 (3В), разрешить работу _______ movwf VRCON _______ movlw b'10000011' _______ movwf OptionR _______ movlw b'00000000' _______ movwf TrisB _______ movlw b'00000011' _______ movwf TrisA _______ bcf Status,RP0 _______ movlw b'00000010' ; режим работы 010 _______ movwf CMCON _______ clrf RCSTA _______ clrf T1CON _______ clrf T2CON _______ clrf CCP1CON ;------------------------------------ _______ bsf Pie1,6 ; разрешить прерывания от компараторов _______ bcf Status,RP0 _______ bcf Pir1,6 ; предварительный сброс флага прерывания от компараторов _______ bsf Intcon,6 ; разрешить прерывания от периферийных устройств ________bsf Intcon,7 ; общее разрешение прерываний ;---------------------------------------- Start2___ bcf Pir1,6 Start1___ btfss Pir1,6 ; опрос: не поднялся ли флаг? ________goto Start1 ; нет - повтор опроса ________ btfsc CMCON,6 ; да (1) опрос бита выхода компаратора ________goto UP ; если бит = 1 то идем в UP ________goto Start1 ; нет - новое сканирование ;------------------------------------- UP_____bsf PortB,2 _______call delay _______goto Start2 ;-------------------------------------- delay___movlw .255 _______movwf SecH C3_____movlw .255 _______movwf SecL Pause_4__decfsz SecL,F _________goto Pause_4 _________decfsz SecH,F _________goto C3 _________return ;**************************************** _________end
Сообщение отредактировал TimR - Oct 18 2006, 18:04
|