Hallo an alle Experten,
ich habe folgendes Problem:
Ich möchte zwei ATMega644 so einfach wie möglich seriell miteinander
verbinden. Die Daten die übertragen werden sollen sind sehr klein und
dürfen auch "langsam" übertragen werden. Als Programmiersprache verwende
ich C
Was ich bisher heraus bekommen habe, das es über UART machbar sein
sollte. Da ich aus Platzgründen die Platine von AVR1 sehr klein halten
muss, habe ich kein Quarz verwendet, sondern vertraue auf den internen
Takt. Natürlich müssen Takt und Baudrate von AVR1 und AVR2 gleich sein
und RX/TX gekreuzt verbunden.
Hier was übertragen werden soll:
Das muss der sender machen (AVR1):
if(Taster gedrückt)
{
sende die Zahl "1"
}
Das muss der Empfänger machen (AVR2):
warten auf daten...
if(empfangener Wert==1)
{
PINA & (1<<PINA1)
}
In wirklichkeit sende ich natürlich unter anderen Bedingungen, aber mir
geht es hier nur um die kommunikation. In eine Richtung würde mir sogar
fürs erste reichen.
Insgesammt sollen nur die Zahle 1, 2, 3, 4, 5, 6, 7 und 8 übertragen
werden. Ob in Binär, Hex oder Dez ist natürlich vollkommen egal.
Ich hoffe es kann mir jemand helfen, denn damit habe ich bisher
keinerlei Erfahrung
Vielen Dank im Vorraus
Gast
#3549100
Heiko K. schrieb: > Da ich aus Platzgründen die Platine von AVR1 sehr klein halten > muss, habe ich kein Quarz verwendet, sondern vertraue auf den internen > Takt. Dann solltest du vielleicht nicht auf den USART setzen, sondern eine Datenverbindung über SPI verwenden. Da ist der Takt wurscht.
Gast
#3549105
Thomas W. schrieb: > Dann solltest du vielleicht nicht auf den USART setzen, sondern eine > Datenverbindung über SPI verwenden. Da ist der Takt wurscht. Man kann die USART auch synchron betreiben, dann spielt der Systemtakt ebenfalls keine große Rolle mehr. Es ist aber natürlich zusätzlich zu den beiden Datenleitungen eine Taktleitung zu ziehen.
Heiko K. schrieb: > Ich möchte zwei ATMega644 so einfach wie möglich seriell miteinander > verbinden. Die Daten die übertragen werden sollen sind sehr klein und > dürfen auch "langsam" übertragen werden. Einfach im Sinne der Hardware oder wie´s am einfachsten zu programmieren ist? Wie weit sind beide Controller voneinander entfernt?!
Heiko K. schrieb: > In wirklichkeit sende ich natürlich unter anderen Bedingungen, aber mir > geht es hier nur um die kommunikation. In eine Richtung würde mir sogar > fürs erste reichen. Und? Mit welchem Teil vom AVR-GCC-Tutorial (WEiterleitung UART) kommst du nicht klar?
Nimm I²C Einen als Master der andere als Slave. da isses dann auch Wurst wie die AVRs Takten. 2 Leitungen für Daten + GND und Fertig. ggf sind noch 2 Externe Widerstände nötig, ob man die Internen benutzen kann weiß ich nicht.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.