Moin zusammen,
ich mach's kurz: Ich möchte mir aus einem Tiny45 einen 180° Servostretcher schnitzen. Das Teil soll also statt den üblichen +- 60° eben +- 90° aus dem Servo holen. RC Puls Eingang am PinB4, Ausgang Servo am PinB3.
So weit so gut. Habe also diverse Tests mit Bascom durchgeführt und das hat eigentlich alles funktioniert, aber ich bekomme einfach das Servozittern nicht weg. Da das Servo unter einer Kamera hängt ist das Zittern sehr lästig. Habe dann also meinen gesamten Code zusammengeschrumpft, so daß nur noch eine ganz banale Abfrage über Timer und eine Ausgabe über Pulseout stattfindet. Und ... es zittert immer noch.
Werde den Verdacht nicht los, daß mir die Interruptroutine hier reinspuckt.
Vielleicht hat ja jemand eine gute Idee (bitte kein Assembler oder C oder Hinweise auf fertige Teile - will es selbst bauen).
Vielen Dank schonmal im voraus
Hier das Cödchen:
Code:$regfile = "ATtiny45.DAT" $crystal = 8000000 $hwstack = 32 $swstack = 10 $framesize = 40 Dim Scalefactor As Integer Scalefactor = 33 Dim Timercount As Integer Config Portb.3 = Output Config Portb.4 = Input Portb.4 = 1 ' Pullup aktiv Gimsk.5 = 1 ' PinChange enable Pcmsk = &B00010000 ' PB4 change aktiv Tccr1 = &B00001000 ' Prescale 128 On Pcint0 Readrctime Portb.3 = 0 Enable Interrupts Do Loop '----------------------------------------------------------------------- Readrctime: If Pinb.4 = 1 Then Tcnt1 = 0 Else Timercount = Tcnt1 Timercount = Timercount * Scalefactor Portb.3 = 0 Pulseout Portb , 3 , Timercount End If Return '------------------------------------------------------------------------ End
Lesezeichen