Serielle Datenübertragung mit ATmega (kein Standardprotokoll)

Hallo zusammen,

eine serielle Kommunikation bereitet mir Kopfzerbrechen.

Das Interface hat eine Daten- und eine Taktleitung. Der Takt wird immer vom Master erzeugt. Will er Daten vom Slave, setzt er den Takt für 9us auf high, dann auf low, nach kurzer Pause werden 9x 8 Datenbits übertragen. Will er Daten schreiben, ist der high-Puls 17us lang.

Mein Problem: ich will einen ATmega dazwischen hängen, um die Daten auszuwerten und in einem weiteren Schritt anzupassen. Dazu habe ich die Taktleitung auf INT1 gelegt und INT1 so konfiguriert, daß ich bei steigender und fallender Flanke einen Interrupt bekomme. Bei der steigenden Flanke passe ich die Datenleitung an und setze den Timer zurück, bei der fallenden bestimme ich mittels des Timerwertes, welche Richtung die Daten haben.

Allerdings kann ich das Datensignal so nur an eben diesen beiden Punkten auswerten und weitergeben. Setzt der Master die Datenleitung zwischen den Taktflanken um, bekomme ich das nicht bzw. zu spät mit.

Wie löst man sowas? Muß ich tatsächlich jede Leitung auf einen Interrupt hängen?

Danke, Sebastian

Reply to
Sebastian Voitzsch
Loading thread data ...

"Sebastian Voitzsch" schrieb im Newsbeitrag news:ecn0qh$q69$ snipped-for-privacy@online.de...

Haengt davon ab, was der uC sonst so zu tun hat. Offenbar nichts. Vergiss Interrupts, lass die Erkennung in der engen Wartescheife des Hauptprogramms laufen.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.