Hmmm ich dachte immer INT0 wäre auf einen festen Pin gelegt. Also beim Mega32 ist es laut Schaltplan auf PD2.
Könnte mich aber auch irren.
MfG
Ein Hallo an Euch,
habe ein Problem mit Interrupt und stehe (glaube ich) auf der Leitung. **
Hier das Programm:
' *** CPU Einstellungen ***
$regfile = "m32def.dat"
$crystal = 11059200
' *** CPU Einstellungen ***
' *** Variablen Definieren ***
Dim Go As Byte
Dim Zaehler As Word
Dim Richtungx As Bit
Dim Richtungy As Bit
' *** Variablen Definieren ***
' *** Constanten ***
Const Anfahren = 83 ' Reload für Timer0 = 998 Hz (PWM 499 Hz)
Const Speed1 = 170 ' Reload für Timer0 = 2010 Hz (PWM 1005 Hz)
Const Speed2 = 199 ' Reload für Timer0 = 3030 Hz (PWM 1515 Hz)
' *** Constanten ***
' *** Port Einstellungen und Ports Reseten ***
Config Porta = Input ' Port A => Input
Config Portb = Input ' Port B => Input
Config Portc = Output ' Port C => Output
' *** Port Einstellungen und Ports Reseten ***
' *** TIMER 0 ***
Config Timer0 = Timer , Prescale = 64 ' Timer0 Einstellungen
On Timer0 Pwm ' wenn timer0 aktiv - dann Sprung zum Unterprogramm "PWM"
Enable Timer0 ' Timer0 GO
' *** TIMER 0 ***
' *** Interrupt Endschalter ***
Config Int0 = Rising
Enable Int0
On Int0 Umschalt
' *** Interrupt Endschalter ***
Enable Interrupts ' Interrupts für die ges. CPU freigegeben
' *** START-Parameter festlegen ***
Zaehler = 1
Richtungx = 0
Richtungy = 0
' *** START-Parameter festlegen ***
' ***** HAUPTPROGRAMM *****
Do
If Pina.0 = 1 Then
If Pina.1 = 0 Then
Go = 1
End If
End If
If Pina.1 = 1 Then
If Pina.0 = 0 Then
Go = 0
Zaehler = 1
End If
End If
Loop
End ' *** E N D E ***
' *** E N D E ***
' ***** HAUPTPROGRAMM *****
' *** PWM ***
Pwm: ' Sprungziel für den Timer0 (PWM-Unterprogramm)
Portc.0 = Richtungx
Portc.2 = Richtungy
If Zaehler <= 499 Then
If Go = 1 Then
Timer0 = Anfahren
Zaehler = Zaehler + 1
Toggle Portc.1
Toggle Portc.3
End If
End If
If Zaehler >= 500 Then
If Zaehler <= 1515 Then
If Go = 1 Then
Timer0 = Speed1
Zaehler = Zaehler + 1
Toggle Portc.1
Toggle Portc.3
End If
End If
End If
If Zaehler >= 1516 Then
If Go = 1 Then
Timer0 = Speed2
Toggle Portc.1
Toggle Portc.3
End If
End If
Return
' *** PWM ***
' *** Interrupt X, Y ***
Umschalt:
If Pinb.2 = 1 Then
Toggle Richtungx
End If
If Pinb.1 = 1 Then
Toggle Richtungy
End If
Return
' *** Interrupt X, Y ***
Ich möchte das wenn PinB.2 oder und PinB.1 von 0 auf 1 umschalten (Endschalter) der Interrupt ausgelöst wird und dann die Richtung geändert wird.
Helft mir mal, ich stehe gerade auf der Leitung, wie ordne ich den Int0 den Pin´s zu?
Gruß MrQu (Manuel)
<u>----->>> In diesem Forum wohnt ein Geist der jedem in die Finger beißt! <<< -----</u>
Error for Drive \"A:\" ---> Wasser im Laufwerk bitte abpumpen!
Hmmm ich dachte immer INT0 wäre auf einen festen Pin gelegt. Also beim Mega32 ist es laut Schaltplan auf PD2.
Könnte mich aber auch irren.
MfG
@coCo
Ja, danke!!!
Ich "Blindfisch" habe ich heute morgen auch gesehen.
Wie war das mit dem Wald und den Bäumen? ...
Gruß MrQu (Manuel)
<u>----->>> In diesem Forum wohnt ein Geist der jedem in die Finger beißt! <<< -----</u>
Error for Drive \"A:\" ---> Wasser im Laufwerk bitte abpumpen!
Lesezeichen