PWM 16F628A
Moderátor: Moderátoři
PWM 16F628A
Ahoj
Už 2 dny bojuju s 16F628A, nějak se mi nedaří rozjet PWM, nebo špatně chápu jeho nastavení v MCU. Co dělám špatně? Díky
ORG 000H
MOVLW 064h
BCF STATUS,RP1
BSF STATUS,RP0
MOVWF PR2
BCF STATUS,RP1
BCF STATUS,RP0
MOVLW 032h
MOVWF CCPR1L
BSF T2CON,2
BSF T2CON,1
BSF T2CON,0
;nastavuji BB3 jako výstup
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW 0F7h
MOVWF TRISB
BCF STATUS,RP1
BCF STATUS,RP0
;konec programu
mys nop
goto mys
end
Už 2 dny bojuju s 16F628A, nějak se mi nedaří rozjet PWM, nebo špatně chápu jeho nastavení v MCU. Co dělám špatně? Díky
ORG 000H
MOVLW 064h
BCF STATUS,RP1
BSF STATUS,RP0
MOVWF PR2
BCF STATUS,RP1
BCF STATUS,RP0
MOVLW 032h
MOVWF CCPR1L
BSF T2CON,2
BSF T2CON,1
BSF T2CON,0
;nastavuji BB3 jako výstup
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW 0F7h
MOVWF TRISB
BCF STATUS,RP1
BCF STATUS,RP0
;konec programu
mys nop
goto mys
end
takže se mi podařilo najít přímo ukázku od inženýrů z microchipu... možná to pomůže i někomu dalšímu, kdo by s tím měl problém.
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
ORG 000H
CLRF CCP1CON
CLRF TMR2
MOVLW 0x7F
MOVWF PR2
MOVLW 0x1F
MOVWF CCPR1L
CLRF INTCON
BSF STATUS,RP0
BCF TRISB,3
CLRF PIE1
BCF STATUS, RP0
CLRF PIR1
MOVLW 0x2C
MOVWF CCP1CON
BSF T2CON,TMR2ON
;konec programu
mys nop
goto mys
end
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
ORG 000H
CLRF CCP1CON
CLRF TMR2
MOVLW 0x7F
MOVWF PR2
MOVLW 0x1F
MOVWF CCPR1L
CLRF INTCON
BSF STATUS,RP0
BCF TRISB,3
CLRF PIE1
BCF STATUS, RP0
CLRF PIR1
MOVLW 0x2C
MOVWF CCP1CON
BSF T2CON,TMR2ON
;konec programu
mys nop
goto mys
end
- Přílohy
-
- pwm.PNG
- (6.29 KiB) Staženo 76 x
tak poslední pokus, teď už by to mělo být OK
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
CITAC0 EQU 20H
CITAC1 EQU 21H
CITAC3 EQU 22H
ORG 000H
CLRF CCP1CON
CLRF TMR2
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW 0x7F
MOVWF PR2
BCF STATUS,RP1
BCF STATUS,RP0
MOVLW 01FH ; nastavení střídy
MOVWF CCPR1L
CLRF INTCON
BSF STATUS,RP0
BCF TRISB,3
CLRF PIE1
BCF STATUS, RP0
CLRF PIR1
MOVLW 0x2C
MOVWF CCP1CON
BSF T2CON,TMR2ON
;registry naplněny hodnotou FF
;cekací smycka
mys nop
goto mys
end
list p=16f628A ; list directive to define processor
#include <p16F628A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
CITAC0 EQU 20H
CITAC1 EQU 21H
CITAC3 EQU 22H
ORG 000H
CLRF CCP1CON
CLRF TMR2
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW 0x7F
MOVWF PR2
BCF STATUS,RP1
BCF STATUS,RP0
MOVLW 01FH ; nastavení střídy
MOVWF CCPR1L
CLRF INTCON
BSF STATUS,RP0
BCF TRISB,3
CLRF PIE1
BCF STATUS, RP0
CLRF PIR1
MOVLW 0x2C
MOVWF CCP1CON
BSF T2CON,TMR2ON
;registry naplněny hodnotou FF
;cekací smycka
mys nop
goto mys
end