(Ich glaube, ich habe eben im falschen Forum gepostet, deshalb hier noch einmal!) Ich habe ein Problem, dass mir schon eine Woche schlaflose Nächte bereitet und hoffe nun hier auf ein paar aufmunternde Worte und etwas Hilfe. a) Ich treffe die Annahme, dass ein AT90S2313 (getaktet mit 7,3728MHz) jeweils einmal eine der folgenden Daten über TxD ausgibt. Dabei ist die Ausgabe als Reaktion auf einen Tastendruck zu verstehen. Dabei handelt es sich um: 0xC1 -> Ausgabe für Taste 1 0xC2 -> Ausgabe für Taste 2 0xC4 -> u.s.w. 0xC8 -> 0xD0 -> 0xE0 -> Ausgabe für Taste 6 (Anmerkung: 9600Bd, 8 Daten Bits, 1 Stop Bit, no Parity, LSB first) b) Der in a) genannte Sachverhalt lässt sich leider nicht beeinflussen/ändern c) Ein zweiter AT90S2313 (gleiche Taktung) soll mit RxD direkt an den TxD aus a) angeschlossen werden. Was nun passieren soll, kann ich zunächst nur mal in Worte fassen. Er soll in einer Routine prüfen, ob etwas an RxD empfangen wird, wenn ja - ob es eins der o.g. 6 Stück ist - wenn ja, dann soll er an einem Pin ein Relais oder einen Schaltkontakt herstellen und dann wieder prüfen, ob etwas empfangen wird. Also werden doch auch 6 I/O Pins als Ausgänge benötigt. Ich habe absolut keine Idee, wie ich das in C umsetzen kann. Hab auch schon das super WIKI-Tut durch, aber da ist nur das Senden mit dem UART genauer beschrieben.
Tja, dann kämpf dich mal weiter bis zum Wiki durch. Auch im Datenblatt steht das ellenlang beschrieben samt kleinen Beispielen, zumindest bei den ATMegas, soviel sollte sich das nicht unterscheiden. Falls du dir wegen der Zeichen unsicher bist, häng doch einfach ein Oszi dran und teste.
Das asynchrone Frame-Format ist für CPU-CPU-Kommunikation auch eher unpraktisch. Du solltest dir zusätzlich nochmal SPI ansehen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.