Hallo alle miteinander, Wir haben in der Schule ein Projekt laufen, bei dem ein Master mit mehreren Slaves (AT90USB162) kommunizieren soll. Wir haben keine UART zur Verfügung (aufgrund der Pinbelegung die uns vorgegeben ist) und auch keinen Interrupt. Daher müssen wir mit einem Internen Counter arbeiten. Wir wollen ein Zeitschlitzverfahren verwenden. Jetzt sollen sich Master und Slave bei jedem Durchgang Synchronisieren (den Counter wieder richtig auf Null setzen) befohr sie kommunizieren. Ich habe keine Ahnung wie man sowas realisieren kann? Würd mich über ein paar Vorschläge oder Tipps freuen. mfg Thomas
warum so kompliziert? Wenn es dedizierte master / slaves gibt ist das thema vom tisch. Der Master ist chef die slaves halten die klappe bis sie gefragt werden. Jeder SLave hat seine Adresse und reagiert darauf. andere Slaves die sich nicht angesprochen fühlen reagieren eben nicht. Wenn es um die UART geht ... Ein TimerInterrupt geht aber immer. Und in diesem Fragst du den Pin ab. Der RX PIN muss dann nur zyklisch abgefragt werden. ändert sich der Pegel dort könnte es ein eingehendes Protokoll sein. Synchron muss da nix laufen Einzig die Abfrage des PINS muss zyklisch erfolgen wenn du keinen Pinchangeinterrupt hast.
Ja, einen Timer Interrupt gibt es natürlich schon. Genau so hätten wir das auch vorgehabt ohne Synchonisation. Allerdings meint unser Betreuer, dass es nach mehreren "Durchgängen" zu Problemen kommen kann, da die Timer/Counter ja nicht zu 100% die Zeit einhalten (Der Quartz hat ja eine ungenauigkeit von +/- 10%). Dadurch verschiebt sich der Abtastpunkt. Ich denke, wir werdens mal ohne Synchronisation porbieren und wenn porbleme auftreten uns hier noch etwas dazu überlegen. mfg Thomas
was willst du da syncronisieren ?? sobald die erste flanke erkant wird ist die empfangsroutine quasi syncron mit dem sender.
Thomas schrieb: > (Der Quartz hat ja > eine ungenauigkeit von +/- 10%). Dann ist es kein Quarz. Quarze haben üblich 100ppm (0,01%). Und 10% ist für ne UART völlig unbrauchbar. Man sollte max 1% anstreben. > Dadurch verschiebt sich der > Abtastpunkt. Aber nur innerhalb des Bytes. Beim nächsten Byte mußt Du mit dem Startbit neu synchronisieren (Pin-Change Interrupt). Peter
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.