Gobstar
29.08.2005, 19:02
Hi Leute..ich hab hiuer grad nen mega16 als hauptprozzi und nen mega8 auf nem motortreiber...
ich will es so machen, dass ich vom mega16 nen wert von -1023 bis 1023 sende und die brücke dementsprechend drauf reagiert und links oder rechts fährt, abhängig von der zahl wird die pwm reguliert.
Jetzt mal das sendeproggi:
$crystal = 16000000
$baud = 19200
Dim C As Integer
Open "Comd.3:19200,8,n,1" For Output As #1
Do
For C = -1023 To 1023 Step 1
Print #1 , C
'Lcd C
Waitms 400
Next
Loop
End
das sendet alle 400ms ne andere zahl
jetzt will ich das hiermit erkennen und gegebenenfalls drauf reagieren
$crystal = 16000000
$baud = 19200
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
Dim C As Integer
Dim A As Integer
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Enable Interrupts
Open "Comc.3:19200,8,n,1" For Output As #1
Do
Input C
Waitms 100
Print #1 , C
Loop
Close #1
Links:
Pwm1a = 0
Pwm1b = C
Return
Rechts:
A = C * -1
Pwm1a = A
Pwm1b = 0
Return
Stopp:
Pwm1a = 0
Pwm1b = 0
Return
End
das ganze funkt über ne softwareserielle über den m16 und geht in die hardwareserielle des motortreibers, da hab ich dann noch ne softwareserielle um das was der treiber empfängt aufm terminal darzustellen...leider kommt wenn ich den bot anschalte immer nur die erste zahl an (-1023) danach 000000000 usw.
weiss jemand hilfe?? was mach ich falsch?
Gruss Stefan
ich will es so machen, dass ich vom mega16 nen wert von -1023 bis 1023 sende und die brücke dementsprechend drauf reagiert und links oder rechts fährt, abhängig von der zahl wird die pwm reguliert.
Jetzt mal das sendeproggi:
$crystal = 16000000
$baud = 19200
Dim C As Integer
Open "Comd.3:19200,8,n,1" For Output As #1
Do
For C = -1023 To 1023 Step 1
Print #1 , C
'Lcd C
Waitms 400
Next
Loop
End
das sendet alle 400ms ne andere zahl
jetzt will ich das hiermit erkennen und gegebenenfalls drauf reagieren
$crystal = 16000000
$baud = 19200
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
Dim C As Integer
Dim A As Integer
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Enable Interrupts
Open "Comc.3:19200,8,n,1" For Output As #1
Do
Input C
Waitms 100
Print #1 , C
Loop
Close #1
Links:
Pwm1a = 0
Pwm1b = C
Return
Rechts:
A = C * -1
Pwm1a = A
Pwm1b = 0
Return
Stopp:
Pwm1a = 0
Pwm1b = 0
Return
End
das ganze funkt über ne softwareserielle über den m16 und geht in die hardwareserielle des motortreibers, da hab ich dann noch ne softwareserielle um das was der treiber empfängt aufm terminal darzustellen...leider kommt wenn ich den bot anschalte immer nur die erste zahl an (-1023) danach 000000000 usw.
weiss jemand hilfe?? was mach ich falsch?
Gruss Stefan