Forum: Mikrocontroller und Digitale Elektronik Einen Modellbauempfänger an einen 90S2313 und dann zum L298


von Benny (Gast)


Lesenswert?

Hi,
ich hab ein kleines Problem. Und zwar geht es darum wie ich, unter 
Verwendung von Assembler, mit einem 90S2313 ein PCM-Signal in ein 
PWM-Signal umwandeln kann? Die Signallänge des PCM liegt dabei zwischen
1-2ns und soll dann mit dem Enablepin eines L298N verbunden werden.
Wie kann ich meinem µC nun sagen das er auf unterschiedlich lange 
Impulse, mit unterschiedlichen Aktionen reagieren soll.(Syntaxtechnisch)
Ich kenne mich leider noch nicht so gut aus mit den vielen Möglichkeiten 
der Befehle in der Assemblersprache.
Und das schließt PWM mit ein....

Also bitte ich um sehr viele hilfreiche Beiträge.

Viel Dank schon mal
Benny

von Rudolph (Gast)


Lesenswert?

Hallo,
da ich in der nächsten Zeit auch so etwas ähnliches machen möchte habe 
ich mir schon mal ein paar Gedanken darüber gemacht. Ich werde das 
PCM-Signal an INT0 anschließen und dann zuerst den Interrupt auf die 
steigende Flanke einstellen. In dem Interrupthandler muss dann der Timer 
gestartet werden und der Interrupt auf die fallende Flanke eingestellt 
werden. Beim nächsten Interrupt kannst du den Timer auslesen und diesen 
Wert z.B. mit einem andern vergleichen. Dann noch den Interrupt wieder 
umstellen, fertig. Da ich kein PWM in meiner Anwendung benötige  und es 
auch sonst nur wenig benutzt habe kann ich dir nicht so viel dazu sagen, 
aber ich denke das ist im Datenblatt um 90s2313 ganz gut erklärt.

Ich hoffe das war ein hilfreicher Beitrag ;-)

Rudolph

von Rudolph (Gast)


Lesenswert?

Hab zufällig noch nen anderen Thread gefunden, der das selbe Thema hat:
http://www.mikrocontroller.net/forum/read-4-7047.html

von Benny (Gast)


Lesenswert?

Hallo Rudolph,
genau den Gedankenansatz hatte ich letzte Nacht auch.
Die ankommende Impulslänge messen,mit mehreren Werten vergleichen und je 
nach Vergleichsergebnis das jeweilige Strungziel wählen.Ich muß mich 
aber erst noch ein bischen in die Timer-und Flankengeschichte 
reinfuchsen,sonst wird das nichts mit dem Code.Da wird wohl die nächste 
Nacht dran glauben müssen...:).  Danke schonmal.


Wenn jemand sonst noch gute Vorschläge hat...immer hinschreiben...:)

Benny

von Olaf (Gast)


Lesenswert?

Hallo Benny und Rudolph,

weiß ja nicht was ihr da machen wollt, aber ich habe schon sehr viel mit 
dem 2313 gemacht. Ich habe da etwas von Impulslängen von 1-2ns gelesen. 
Ist das richtig? Die mit Hilfe des Interrupt-Einganges zu Messen wird 
etwas schwierig, gell?

Olaf

von thkaiser (Gast)


Lesenswert?

neeeee, Bei Fernsteuerempfängern kommen 1 - 2 ms raus. Ist ein 
Tippfehler.

von Benny (Gast)


Lesenswert?

Shit...verdammter....!!! kaiser hat recht, da hat sich doch wahrhaftig 
ein Fehler bei mir eingeschlichen.
Ich meinte "ms"
Also nu richtig....Es handelt sich bei diesem uns hier vorliegenden 
Problem nicht, wie erst von mir geschrieben worden ist, um 
NANOsec.....nein!!... es sind MILLIsec.. Sorry, sorry war natürlich mein 
Fehler. Hab auch schon auf meinem Deck das "n" rausgebrochen...:)
Zum Thema:
Hallo Olaf,
jetzt wo sich die Wogen der Unstimmigkeit gelegt haben, frage ich dich 
nach einem konkreten Lösungsansatz für mein Problem. Hast du schon 
Erfahrung mit diesem Thema gemacht?
Wenn ja, schreib sie bitte....wenn du Zeit hast.
An alle:
Ist es zwingend erforderlich bei Impulslängen um 1-2ms(!!) mit Interrupt 
zu arbeiten?
Kann man den µC nicht genau zeitlich darauf abstimmen, dass er alle 20ms 
ein Impuls verarbeitet,
 und nicht einfach nur auf den nächsten Impuls wartet? Oder kann man 
nicht von so kontinuierlichen Signalen des Empfängers ausgehen? (sprich. 
gibt es Schwankungen
bezüglich Funkübertragung?)

Dankbar für jede Hilfe

Benny

von Olaf (Gast)


Lesenswert?

Hi Benny,

habe noch nicht so genau verstanden was du da wirklich machen willst, da 
ich mich im Modellbau nicht auskenne. Die Idee mit dem Int0 ist 
eigentlich schon ganz gut. Wenn es aber nur darum geht irgendwelche 
Impulsbreiten zu messen, liegt es natürlich nahe das mit dem 
Input-Capture (IPC) zu machen. Interrupt gesteuert würde ich das Ganze 
auf jeden Fall machen; ist schöner und -meine ich- einfacher. Der IPC 
kann jedenfalls auch ein Interrupt auslösen.

Gruß,
Olaf

von Olaf (Gast)


Lesenswert?

... muss natürlich "ICP" heißen.

von Rudolph (Gast)


Lesenswert?

An ICP hatte ich gar nicht gedacht, da ich keinen 90S2313 benutze 
sondern nur nen tiny11 und der hat kein ICP, aber is natürlich die beste 
Lösung.

Rudolph

von thkaiser (Gast)


Lesenswert?

Ich habe einen Link:

http://home.t-online.de/home/s.huehn/elektronik/fahrtregler/fahrtregler.htm

Es gibt dort den gesamten Code als Quelltext zum Herunterladen, das 
sollte helfen.

von Benny (Gast)


Lesenswert?

!!TOPLINK!!

Is genau das wonach ich gesucht habe,das sollte alle meine Fragen 
beantworten.

Danke nochmal an alle für eure Hilfe...


Gruß,
Benny

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.