Forum: Compiler & IDEs Bitmuster sinnvoll ausgeben


von flyingwolf (Gast)


Lesenswert?

Hallo Leute.
ich möchte ein Bitmuster über einen uC-Port ausgeben.
Jedes Bitmuster ist eine Zeichen, also z.B.

a=10000000000111111100001110001110010011100000100100001001011111

wobei "1" ein 25ms High und ein 75ms Low-Impuls ist wogegen "0" ein
100ms Low-Impuls ist.

Eine Idee wäre es, eine 1 als 0xc0 zu definieren und 0 als 0x00 und die
Zeichen dann seriell ausgeben zu lassen.
Bestimmt gibt es eine bessere Idee. Ich habe sowas, glaube ich, schon
mal im Code des Butterfly gesehen, aber ich hab's nicht vertsanden.
Optimal stelle ich mir das so vor, dass ich etwas wie
write_ir("Test");
habe und die Zeichen dann so wie ich die Bitmuster ermittelt habe,
ausgegeben werden.

von Peter D. (peda)


Lesenswert?

25ms ist ja schon ne elend lange Zeit.


Ich würde nen 25ms Timerinterrupt aufsetzen und dann pro Bit von 4
runterzählen und ist das Bit 1, dann bis zum nächsten Interrupt 1
ausgeben. Das geht am genauesten mit dem set bzw. clear pin on
compare.


Mit der UART geht das keinesfalls, da die ja immer ein Start- und
Stopbit ranhängt.


Peter

von flyingwolf (Gast)


Lesenswert?

Die Uart brauche ich ja noch um die Zeichen einzulesen, die ich ausgeben
will.
Ich hatte da ehr an so eine Routine gedacht wie ich sie für die Ausgabe
der Zeichen ans Display via Schieberegister benutze.

Das Problem ist eben bloß, dass das Display es versteht, wenn ich ein
"A" ins Datenregister schiebe, wogegen ich hier eben ein "A"
erstmal übersetzten muss in die 64 Bit
ich muss also erst mal irgendwo hinterlegen, dass "a" (siehe oben)
ist und dann das Zeug am Port Pulsen. Die Idee mit dem Interrupt ist
aber schon mal gut.

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.