Hallo Leute, ich brauche dringende Hilfe. Ich muss den Atmega64 als Slave programmieren. Er soll vom Master(Aardvark) Daten empfangen und wieder an den Master senden. Weil mir das Ganze aber leider sehr neu ist weiss ich nicht wie ich da vorgehen soll :( Kann mir da jemand helfen?? VG
Hat die Suche im Forum nichts gebracht? Vielleicht war's der falsche Suchbegriff. "I2C" wäre noch ein Tipp. Beispiele gibt's genug, z.B. Beitrag "TWI / I2C einf. MASTER SLAVE Beispiel(Assembler) ATmega8"
Hi >Er soll vom >Master(Aardvark) Daten empfangen und wieder an den Master senden. Ein Erdferkel mit TWI? MfG Spess
an dem Suchbegriff liegts denke ich mal nicht, habe mir auch schon vorher das angeschaut, was du mir geschickt hast. Ich brauche einen fertigen Code, das in Eclipse oder Atmel Studio funktioniert, damit ich den ganzen Aufbau nachvollziehen kann... @spess genau :)
Hi >Ich brauche einen >fertigen Code, das in Eclipse oder Atmel Studio funktioniert, damit ich >den ganzen Aufbau nachvollziehen kann... Gibt es bei Atmel: http://www.atmel.com/Images/doc2565.pdf http://www.atmel.com/Images/AVR311.zip Außerdem Datenblatt ab S.219. MfG spess
>Ich muss den Atmega64 als Slave programmieren. Er soll vom >Master(Aardvark) Daten empfangen und wieder an den Master senden. Weil >mir das Ganze aber leider sehr neu ist weiss ich nicht wie ich da >vorgehen soll :( Nimm einen ATega644p und benutzt den zweiten UART. I2C ist doch Müll.
>Nimm einen ATega644p und benutzt den zweiten UART.
Ach Shit, der ATmega64 hat ja auch zwei UARTs.
Schnell weg;)
Hi >Ach Shit, der ATmega64 hat ja auch zwei UARTs. >Schnell weg;) Die vom ATMega644p können aber auch SPI. MfG Spess
spess53 schrieb: > Hi > >>Ich brauche einen >>fertigen Code, das in Eclipse oder Atmel Studio funktioniert, damit ich >>den ganzen Aufbau nachvollziehen kann... > > Gibt es bei Atmel: > > http://www.atmel.com/Images/doc2565.pdf > http://www.atmel.com/Images/AVR311.zip > > Außerdem Datenblatt ab S.219. > > MfG spess Zunächst mal vielen Danke für die beiden Links, aber ich krieg mehrere Fehlermeldungen :(( Warning 1 ignoring #pragma vector [-Wunknown-pragmas] #pragma vector=TWI_vect __interrupt void TWI_ISR( void ); Warning 3 implicit declaration of function '__enable_interrupt' [-Wimplicit-function-declaration] __enable_interrupt(); Warning 4 implicit declaration of function '__sleep' [-Wimplicit-function-declaration] __sleep(); Warning 5 implicit declaration of function '__no_operation' [-Wimplicit-function-declaration] __no_operation(); Warning 6 'dont_sleep' defined but not used [-Wunused-variable] static unsigned char dont_sleep = 0;
Hi >Zunächst mal vielen Danke für die beiden Links, aber ich krieg mehrere >Fehlermeldungen :(( Etwas Hirnschmalz musst du schon reinstecken. Die Beispieldateien sind für den IAR-Compiler. Da gibt es irgendwelche Differenzen zum GCC-Compiler. Allerdings bin ich da überfragt, da ich kein C benutze. MfG Spess
xxx yyy schrieb: > Zunächst mal vielen Danke für die beiden Links, aber ich krieg mehrere > Fehlermeldungen :(( Atmel hat den IAR Compiler benutzt, Du hast wahrscheinlich einen gcc. Da ist die Syntax etwas anders. -> Doku anschauen. Für irgendwas musst Du ja auch noch da sein. fchk
Also ich habe für #pragma vector=TWI_vect __interrupt void TWI_ISR( void ); ==> ISR(TWI_vect){} __enable_interrupt(); ==> sei(); __sleep(); ==> cli(); __no_operation(); ==> asm volatile("NOP"); eingegeben, aber ich kann trotzdem keine Daten mit dem Master austauschen :-/
Hi >__sleep(); >==> cli(); Das passt mit Sicherheit nicht. MfG Spess
Hi
>oh hast recht, _delay_us(); oder?
Nein. Mach dich mal über die Sleep-Modes schlau.
Programmieren hat nichts mit Copy & Paste zu tun.
MfG Spess
es funktioniert :)))) danke danke danke euch allen, schön, dass es euch gibt :)
spess53 schrieb: > Hi > >>oh hast recht, _delay_us(); oder? > > Nein. Mach dich mal über die Sleep-Modes schlau. > > Programmieren hat nichts mit Copy & Paste zu tun. > > MfG Spess hmm... low-power mode() vielleicht???
xxx yyy schrieb: > Ich muss den Atmega64 als Slave programmieren. Er soll vom > Master(Aardvark) Daten empfangen und wieder an den Master senden. Weil > mir das Ganze aber leider sehr neu ist weiss ich nicht wie ich da > vorgehen soll :( > Kann mir da jemand helfen?? So eine Frage gab es schon letztens aber für einen anderen atmega, sollte also bei Benutzung der Suche zu finden sein. Aber hier nochmal: Nimm am besten eine fertige Bibliothek die du nur in dein Programm einbinden musst, da weißt du wenigstens, dass die Software für die Schnittstelle funktioniert. Hier findest du eine schon mehrfach getestete Lib für einen atmega als TWI-Slave: http://www.jtronics.de/avr-projekte/library-i2c-twi-slave.html
Hi >hmm... low-power mode() vielleicht??? Ich habe die Links nur gepostet, nicht angesehen. Du wolltest ja nur >Ich brauche einen >fertigen Code, das in Eclipse oder Atmel Studio funktioniert, damit ich >den ganzen Aufbau nachvollziehen kann... Ich hoffe, das du das auch so gemeint hast. MfG Spess
ja das habe ich auch schon getestet der hat mir aber dinge geliefert, die ich nicht haben wollte.. hab schon so einiges ausprobiert, aber irgendwie ging alles nicht bis auf das Beispiel von spess, bei dem Bsp weiss ich noch nicht was ich für __sleep(); in eclipse / atmel studio eingeben soll :-/
ja gemeint war, dass ein Code einwandfrei in eclipse/atmel studio funktioniert.. weil Beispiele gibt es unendlich viele, die ich ja auch getestet habe... aber das was du gepostet hast macht genau das was ich wollte, von daher vielen dank spess :))
Hi >aber das was du gepostet hast macht genau das was ich >wollte, von daher vielen dank spess :)) Atmel hat einen Haufen interessanter Appnotes. Ich frage mich immer, warum das nicht die erste Anlaufstelle ist. MfG Spess
tja, manchmal sucht man blind durch die Gegend, obwohl das einem vor der Nase steht, ist nun mal so :)
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.