-
-
PWM Signal auslesen
Hallo,
ich möchte gerne ein PWM Signal aus einem Fernsteuerungsempfänger auslesen. Mit Bascom und RN-Control. Hab aber keine Idee wie ich das machen soll. Vermute irgendwie mit Timer und Counter. Hab viel probiert aber nichts hat funktioniert. Hat von Euch jemand sowas schon mal gemacht und kann mir auf die Sprünge helfen??
Gruß
Andreas
-
-
Hi Hütti,
danke für den Tipp. Kannte ich noch gar nicht dieses Forum.
Gruß
Andreas
-
-
Hi,
ich beschäftige mich immer noch mit dem Problem ein die Kanäle eines RC-Empfängers auszulesen. Hab jetzt (dank Hüttis Tipp) im RC-Line Forum einen hübschen kleinen Programmschnipsel gefunden (dank an den Autor Werner...der damit aber auch noch seine Probleme hat). Damit läst sich über INT0 schön ein Empfängerkanal auswerten. Jetzt habe ich versucht mit ebenfalls mit TIMER1 und über INT1 einen zweitren Kanal auszuwerten. Das Klapp gar nicht. Ich geb hier mal Werners Programmschnipsel zum besten. Hat jemand ne Idee wie man hier noch einen Zweiten Kanal auslesen kann???
Gruß
Andreas
*** Programm-Anfang ***
'D2 == Int0
'D3 == Int1
$regfile = "m32def.dat"
$crystal = 16000000
$lib "lcd4.lbx"
Dim Switch As Bit
Dim A As Long
Dim B As Long
On Int0 Abfrage
Config Int0 = Rising
Config Timer1 = Counter , Prescale = 1
Enable Int0
Enable Interrupts
do
Cls
Lcd "Timer0:" ; A
Lowerline
Lcd "Puls" ; B
Waitms 5
loop
End
'Interrupt-----------------------
Abfrage:
If Switch = 0 Then Goto Alf Else Goto Otto
Alf:
Timer1 = 0
Start Timer1
Config Int0 = Falling
Switch = 1
Goto Ende
Otto:
Stop Timer1
A = Timer1
Config Int0 = Rising
Switch = 0
Timer1 = 0
Ende:
Return
*** Programm-Ende ***
-
hi
in deinem prog sehe ich nur INT0 keinen INT1?
dann sehe ich noch timer 0 ?? bei variable A ???
und wo wird der wert des timers in variable B eingetragen ??
ciao
hütti
-
..wie gesagt , ist nicht mein Programm, ist von Werner aus dem RC-Line Forum. Ist noch nicht ganz fertig..... Das mit Timer 0 und B kannst Du vergessen. Timer1 , Int0 und A gehören zusammen und funktionieren auch zusammen gut. Das ganze geht auch mit Timer1 und Int1, aber nicht mit Timer1 und Int0 und Int1 (wär schön, weil dann könnte ich zwei Servokanäle auslesen). Hierfür Suche ich ne Lösung. Einen Kanal kann ich mit Werners Programm gut auslesen, Zwei geht gar nicht!
Hütti has Du ne Idee wie man so was macht??
Gruß
Andreas
-
meinst du 2 kanäle aus einem impulstelegramm, wo z.b.
8 kanäle hintereinander ausgegeben werden, sprich das was
aus einem fernsteuersender kommt?
oder 2 eingänge, wo 2 getrennte signale ankommen ?
-
2 Eingänge wo 2 getrennte Signale ankommen
Gruß
Andreas
-
du willst mit einem timer und 2 interrupts 2 getrennte signale
auslesen ? das geht nicht, pro timer ein signal.
der timer wird gestartet wenn das signal auf H geht und gestoppt wenn
es auf L geht . der timer-wert ist dann dein gewünschtes ergebnis.
bei 2 signalen würde das stoppen und starten durcheinander gehen
wenn die impulse gleichzeitig kommen.
wenn jedoch garantiert ist das die impulse nie gleichzeitig anliegen,
und immer puls A als erstes kommt, zeitlich danach der puls B,
dann geht es, musst aber das programm umschreiben, das nacheinander
int0 und int1 abgefragt werden.
ciao
hütti
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen