Ich hab' noch'n Programm zum Erzeugen von Servopulsen in Bascom, das Timer1 benutzt. Musst du eventuell'n bisschen anpassen (an deine Taktfrequenz und so).
Code:$regfile = "2313def.dat" 'AT90S2313 $crystal = 8000000 Config Timer1 = Timer , Prescale = 8 'Konstanten Const S1offset = 1024 Const S2offset = 1024 'Variablen Dim S1pos As Byte : Dim S1zeit As Word 'Servo S1 hängt an PB1 Dim S2pos As Byte : Dim S2zeit As Word 'Timer Start Timer1 S1pos = 127 : S2pos = 127 'alle Servos in Neutralstellung Ddrb = &H0F 'Die ersten 4 Pins von PortB auf Ausgang Portb = &H00 'erstmal alles auf low S1zeit = 6 * S1pos : S1zeit = S1zeit + S1offset S2zeit = 6 * S2pos : S2zeit = S2zeit + S2offset Timer1 = 0 : Count = 0 Do 'Servos stellen If Timer1 > 20000 Then Portb.1 = 0 : Portb.2 = 0 S1zeit = 6 * S1pos : S1zeit = S1zeit + S1offset S2zeit = 6 * S2pos : S2zeit = S2zeit + S2offset Timer1 = 0 End If If Timer1 > S1zeit Then Portb.1 = 1 If Timer1 > S2zeit Then Portb.2 = 1 Loop End
Lesezeichen