Hallo
Die Verwendung des (NoSave-) Pinchange-Interrupts zum Einlesen halte ich auch für richtig, ich war nur zu faul es umzusetzen.Mit "ähnlich gut" meine ich, dass ein geringes, aber deutlich sichtbares Servozucken an den Servos vorhanden ist, welche mit den eingelesenen RC-Signalen versorgt werden. Servos, denen ich im Programm einen Festwert zuweise, zucken nicht.
Was ihr weder in der Bascom- noch in der ASM-Version beachtet ist der Überlauf des Timers während der Impulsmessung. Hier schlummert möglicherweise auch mein Denkfehler:
GrußCode:'------------------------------------------------------------------------------------------------------------- 'Hauptprogramm starten '------------------------------------------------------------------------------------------------------------- Do If Pina.7 = 1 And Empfangskanal_temp_ein(1) = 0 Then Empfangskanal_temp_ein(1) = Timer1 End If If Pina.7 = 0 And Empfangskanal_temp_ein(1) <> 0 Then Empfangskanal_temp_aus(1) = Timer1 If Empfangskanal_temp_aus(1) > Empfangskanal_temp_ein(1) Then ' Wert nur gültig wenn kein Timerüberlauf Empfangskanal(1) = Empfangskanal_temp_aus(1) - Empfangskanal_temp_ein(1) End If Empfangskanal_temp_ein(1) = 0 End If If Empfangskanal(1) <> 0 Then Servo(1) = Empfangskanal(1) End If Loop End
mic







Zitieren

Lesezeichen