Redals1311
14.07.2008, 14:38
hallo leute
habe ein problem und zwar, erzeuge ich mit dem pic16f877 an ccp1 sprich PORTC,2 eine PWm. Diese Funktioniet auch einbandfrei.
So mein Problem ist, diese PWm ist an einem L&203 enable eingang. Mit diesem baustein kann man dann je nach pwm die motorleistung steuern,. DIe polung der motoren kann man mit dem In1 ode rIn2 beeinflußen.
SO mein problem sit, wenn ich eine Pwm erzeuge und den motor rechtsrum laufen lassen und er soll nach 10 sek in die andere richtung fahren macht er dies nicht.
Kann mir jemand bitte weiterhelfen, wär echt spitze.
hier sit noch der code für eine pwm:
wie müsste ich ihn umstellen das nach einer zeit die räder rückwärtsfahren:
LIST p=16F877 ; list directive to define processor
#include <p16F877.inc>; processor specific variable defs
__CONFIG H'3F39' ; _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC
ERRORLEVEL -302 ; unterdrücke Warnungen zur Bank-Auswahl
ERRORLEVEL -203
;************************************************* *************
;*
;* Pinbelegung
;* ----------------------------------
;* PORTA:
;* 1
;* 2
;* 3
;* 4
;* PORTB:
;* 1
;* 2
;* 3
;* 4
;* 5
;* 6
;* 7
;* PORTC:
;* 1
;* 2 PWM-Ausgang
;* 3
;* 4
;* 5
;* 6
;* 7
;*
;************************************************* *************
;************************************************* *********
Counter1 EQU H'20'
Counter2 EQU H'21'
Counter3 EQU H'22'
Zahl EQU H'23'
Zahl_2 EQU H'24'
; Anfangsinitialisierung
Initialisierung
bsf STATUS,RP0
clrf TRISB
clrf TRISD
bcf STATUS,RP0
clrf PORTC
clrf PORTB
bsf PORTB,5
bcf PORTB,4
clrf Zahl
init
; Vorteiler 16:1 und Timer2 einschalten
BsF T2CON,T2CKPS1 ; Vorteiler 16:1
bcf T2CON,T2CKPS0
BSF T2CON,TMR2ON ; Timer2 ein
; Frequenz auf 10 kHz einstellen
BSF STATUS,RP0 ; Bank1
MOVLW D'90'
MOVWF PR2 ; 2,5 kHz
BCF STATUS,RP0 ; Bank1
; Tastverhältnis auf 50% einstellen
MOVLW D'62' ;62
MOVWF CCPR1L ; 50% von 124
; RC2/CCP1 auf Ausgang stellen
BSF STATUS,RP0 ; Bank1
BCF TRISC, 2 ; RC2: output=0
BCF STATUS,RP0 ; Bank 0
; PWM MODE mit CCP1 initialisieren
CLRF CCP1CON ; CCP1-Modus aus
BSF CCP1CON,CCP1M3 ; CCP1-Modus PWM-Mode
BSF CCP1CON,CCP1M2
loop
call Verzögerung_1s
call Verzögerung_1s
call Verzögerung_1s
bcf PORTB,5
bsf PORTB,4
call Verzögerung_1s
call Verzögerung_1s
call Verzögerung_1s
goto loop
#include "Verz\Verz_a.inc"
end
habe ein problem und zwar, erzeuge ich mit dem pic16f877 an ccp1 sprich PORTC,2 eine PWm. Diese Funktioniet auch einbandfrei.
So mein Problem ist, diese PWm ist an einem L&203 enable eingang. Mit diesem baustein kann man dann je nach pwm die motorleistung steuern,. DIe polung der motoren kann man mit dem In1 ode rIn2 beeinflußen.
SO mein problem sit, wenn ich eine Pwm erzeuge und den motor rechtsrum laufen lassen und er soll nach 10 sek in die andere richtung fahren macht er dies nicht.
Kann mir jemand bitte weiterhelfen, wär echt spitze.
hier sit noch der code für eine pwm:
wie müsste ich ihn umstellen das nach einer zeit die räder rückwärtsfahren:
LIST p=16F877 ; list directive to define processor
#include <p16F877.inc>; processor specific variable defs
__CONFIG H'3F39' ; _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC
ERRORLEVEL -302 ; unterdrücke Warnungen zur Bank-Auswahl
ERRORLEVEL -203
;************************************************* *************
;*
;* Pinbelegung
;* ----------------------------------
;* PORTA:
;* 1
;* 2
;* 3
;* 4
;* PORTB:
;* 1
;* 2
;* 3
;* 4
;* 5
;* 6
;* 7
;* PORTC:
;* 1
;* 2 PWM-Ausgang
;* 3
;* 4
;* 5
;* 6
;* 7
;*
;************************************************* *************
;************************************************* *********
Counter1 EQU H'20'
Counter2 EQU H'21'
Counter3 EQU H'22'
Zahl EQU H'23'
Zahl_2 EQU H'24'
; Anfangsinitialisierung
Initialisierung
bsf STATUS,RP0
clrf TRISB
clrf TRISD
bcf STATUS,RP0
clrf PORTC
clrf PORTB
bsf PORTB,5
bcf PORTB,4
clrf Zahl
init
; Vorteiler 16:1 und Timer2 einschalten
BsF T2CON,T2CKPS1 ; Vorteiler 16:1
bcf T2CON,T2CKPS0
BSF T2CON,TMR2ON ; Timer2 ein
; Frequenz auf 10 kHz einstellen
BSF STATUS,RP0 ; Bank1
MOVLW D'90'
MOVWF PR2 ; 2,5 kHz
BCF STATUS,RP0 ; Bank1
; Tastverhältnis auf 50% einstellen
MOVLW D'62' ;62
MOVWF CCPR1L ; 50% von 124
; RC2/CCP1 auf Ausgang stellen
BSF STATUS,RP0 ; Bank1
BCF TRISC, 2 ; RC2: output=0
BCF STATUS,RP0 ; Bank 0
; PWM MODE mit CCP1 initialisieren
CLRF CCP1CON ; CCP1-Modus aus
BSF CCP1CON,CCP1M3 ; CCP1-Modus PWM-Mode
BSF CCP1CON,CCP1M2
loop
call Verzögerung_1s
call Verzögerung_1s
call Verzögerung_1s
bcf PORTB,5
bsf PORTB,4
call Verzögerung_1s
call Verzögerung_1s
call Verzögerung_1s
goto loop
#include "Verz\Verz_a.inc"
end