vielen dank schonmal.
mit dem obigen code (allesdings mit nosave) kommt soetwas an:
65042
3
2
42679
2
2
2
2
2
2
2
55647
2
2
3
2
2
3
2
64746
3
24588
2
2
2
2
3
2
56860
3
24437
3
24543
2
43786
(nur ein auszug)
ich habe mir gedacht das der print befehl vielleicht zu langsam sein könnte. also habe ich mit eine led geschnapp und den code soweit verändert.
ich habe mich gewundert warum denn die LED nicht leuchtet. Sie tat es doch, nur gaaanz wenig. Daraufhin habe ich mich im internet einmal nach einer osciloscopimprovisierung für den pc umgesehen. Für die soundkarte habe ich dann auch etwas gefunden. also erstmal das unbearbeitete servosignal angeschaut. Dann das des pins für die LED.Code:$regfile = "4433def.dat" $crystal = 4000000 $baud = 9600 Config Timer1 = Timer , Prescale = 8 Start Timer1 On Int0 C1rise Nosave : On Int1 C1fall Nosave Enable Int0 Rising : Enable Int1 Falling Enable Interrupts Dim Zeit As Integer Config Portd = Output Do Loop 'Endlosschleife C1rise: 'Bei Beginn den Timer zurücksetzen Timer1 = 0 Return C1fall: Zeit = Timer1 If Zeit > 750 Then Portd.2 = 1 Else Portd.2 = 0 end if Return
Und siehe da die LED bekommt jedesmal wenn das servosignal high ist eine flanke genausolang wie die highphase.
Ausgerechnet habe ich das bei einem prescale von 8 (einer auflösung von 2 µS) und einer signallänge von 1 - 2 ms eine zahl von 500 - 1000 im timer stehen müsste. (daher die zahl 750) Ich dachte also die LED müsste auf halben vollausschlag umspringen. Leider war dem nicht so. bitte helft mir den denkfehler zu finden







Zitieren

Lesezeichen