Napsal: 08 říj 2011, 15:24
Zdravím Vás
Mám taký problém, snažím sa ovládať jednoduchý DC motor, no skončil som pri prerušení, ako vzor prerušenia som použil : http://pandatron.cz/?154&skola_programovani_pic-10_dil , no nejak mi nefunguje, použil som PIC16F690, program beží normálne, len ani pri zmene úrovne na RA2, sa nič nedeje, prerušenie jednoducho nenastane, prerušenie by malo na nejaký čas zastaviť motor, vie niekto pls kde je chyba ?? Díky
Mám taký problém, snažím sa ovládať jednoduchý DC motor, no skončil som pri prerušení, ako vzor prerušenia som použil : http://pandatron.cz/?154&skola_programovani_pic-10_dil , no nejak mi nefunguje, použil som PIC16F690, program beží normálne, len ani pri zmene úrovne na RA2, sa nič nedeje, prerušenie jednoducho nenastane, prerušenie by malo na nejaký čas zastaviť motor, vie niekto pls kde je chyba ?? Díky
Kód: Vybrat vše
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
org 0
cblock 20h
Delay1
Delay2
Delay3
Delay4
Delay5
Delay6
W_save
Sta_sav
PCL_sav
FSR_sav
endc
org 00h
goto Start
org 04h ; ulozeni hlavnich registru
movwf W_save ; W
movf STATUS,W
clrf STATUS ; Banka 0
movwf Sta_sav ; STATUS
movf PCLATH,w
movwf PCL_sav ; PCLATH
movf FSR,w
movwf FSR_sav ; FSR
GOTO PRERUS
Start
bsf STATUS,RP0 ; banka 1
MOVLW 0x04 ; I-O
MOVWF TRISA
bcf STATUS,RP0 ; Banka 0
MOVLW B'10010000' ; povoleni preruseni pouze od RA2
MOVWF INTCON
bsf PORTA,0 ; zapnutie motora
call CAKAJ
bcf PORTA,0
CALL CAKAJ
GOTO Start
PRERUS
BTFSC INTCON,1
GOTO PRER0 ; od RA2
GOTO PRERKON ; nezname = nic
PRER0
BCF INTCON,1 ; smazat priznak
BCF PORTA,0 ; na nejaký čas sa vypne motor
CALL CAKAJ1
GOTO PRERKON
PRERKON
MOVLW B'10010000'
MOVWF INTCON
clrf STATUS
movf FSR_sav,w ; FSR
movwf FSR
movf PCL_sav,w ; PCLATH
movwf PCLATH
movf Sta_sav,w ; Status
movwf STATUS
swapf W_save,f ; W
swapf W_save,w
retfie
CAKAJ
clrf Delay1
clrf Delay2
slucka
DECFSZ Delay1,1
GOTO slucka
DECFSZ Delay2,1
GOTO slucka
RETURN
CAKAJ1
MOVLW .100
MOVWF Delay3
MOVWF Delay4
MOVWF Delay5
slucka1
DECFSZ Delay3,1
GOTO slucka1
DECFSZ Delay4,1
GOTO slucka1
DECFSZ Delay5,1
GOTO slucka1
RETURN
CAKAJ2
clrf Delay6
slucka2
DECFSZ Delay6,1
goto slucka2
RETURN
end