www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [Anfänger] Bitmusterübertragung -> M16C Ausgabe


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin ein blutiger Anfänger in Sachen MCUs und habe dort eine kleine 
Bitte an euch.
Könnte mir vielleicht erklären oder noch viel besser beispiel Quelltext 
zeigen, wie man ein Bitmuster zB. in c++ erstellt dieses dann über die 
serielle Schnittstelle an den m16c (Mitsubishi) übertragen kann? Es soll 
einfach so geschehen:
Bitmuster 1 -> Out1 high
Bitmuster 2 -> Out2 high

Wäre jeden sehr dankbar der mir dabei helfen könnte ;)

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst also per PC dem MCU Daten (Bytes) senden auf die er dann 
reagieren soll?

Du meinst Bitmuster, aber im Endeffekt kommt es aufs selbe raus:

 MSB....LSB
  |      |
0b00001000 -> 0x08 -> 8
0b00011010 -> 0x1A -> 26
0b11111111 -> 0xFF -> 255

MSB ist das Most-Significant-Bit und LSB das Least-Segnificant-Bit. Du 
siehst, ein Bitmuster ist nichts anderes als eine Zahl im Dualsystem 
welche sich problemlos in andere Zahlensysteme übersetzen lässt.

Nun sendest du per PC (Terminalprogramm z.B.) die Zahl 26 welche dem 
Bitmuster 00011010 entspricht. Der MC muss das Recieve-Register des UART 
auslesen und mit den Vorgaben vergleichen:

if (ucRegisterinhalt == 26)
{
  // Bitmuster 00011010 empfangen
}

if (ucRegisterinhalt == 255)
{
  // Bitmuster 11111111 empfangen
}

Usw.. Es ist natürlich nicht unbedingt angebracht einzellne 
IF-Statements zu basteln.
Wenn das Bitmuster länger als 8 Bit sein soll gibt es Probleme da das 
UART im normalmodus eben nur 8 Datenbits (ein Byte) übertragen kann. Man 
könnte nun zwei Bits senden welche der MC vor dem vergleichen puffert 
und zusammensetzt... Aber das ist jetzt sehr fiktiv da ich keineswegs 
weiss was du überhaupt anstellen willst.

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Formatierungsfehler! Der | unter LSB soll natürlich auch auf das 
letzte Bit in der Kette zeigen...

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Sascha, ich werde es gleich weiter ausprobieren. Erste 
Ergebnisse (?) kann ich dir wohl heute mittag oder nachmittag berichten 
;)
Also ich muss zuerst ein c++ Programm schreiben, dessen Datenbank 
abgefragt werden kann und dieser Artikel dann als Bitmuster zur MCU 
übertragen werden soll. Jedes Bitmuster soll dann für jeden Artikel (ca. 
50) eine Anzeige im Lager aktivieren.
Falls du und andere mir noch weiter Tipps geben könnten, ich wäre 
dankbar =)

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sooo, da bin ich wieder

also die c++ umsetzung und sachen habe ich glaube mittlerweile soweit in 
etwa.
nun meine frage zu der programmierung des m16c. ich kann mir leider 
absolut nicht richtig vorstellen wie ich da vorgehen soll?
Wie kann ich aus dem Recieve Register daten auslesen? Wie kann ich bei 
dem m16c die UART initialisieren, so dass er dann die Bits empfängt vom 
PC diese Auswertet (evtl. mit dem PC vergleicht ob das Empfangene auch 
richtig ist) und dann anschließend Ausgibt?
Ihr wäre über jegliche Hilfe, Beispielcodes oder Tutorials wirklich sehr 
dankbar. Habe nämlich soweit keine Erfahrung mit so etwas bis jetzt und 
muss diese Woche unbedingt weiter kommen in dem Punkt :(

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.