Gast
#441048
Hallo, ich versuche gerade auf einem ATtiny45 mithilfe dem USI eine serielle Schnittstelle ans laufen zu bekommen. Beschrieben ist das in der Appnote AVR307 von Atmel. Die Software ist allerdings für einen ATtiny26 und den IAR Compiler geschrieben. Jetzt habe ich die Software soweit umgeschrieben, nur laufen tut sie noch nicht so recht. Ich habe noch mit Timingproblemen zu kämpfen. Nachdem 5 Bits über das USI Schieberegister ausgegeben wurden, muss dieses nachgeladen werden. Genau an dieser Stelle benötigt das Programm, je nach Optimierungseinstellungen, unterschiedlich lange. In der Software für den IAR Compiler ist eine Zeile die da heisst: __no_init __regvar static unsigned char USI_UART_TxData @ 15; // Tells the compiler to store the byte to be transmitted in registry. Gibt es für den GCC auch einen Befehl, der ihn veranlasst die Variable in einem Register zu halten? Wenn ja wie heisst dieser? Falls sonst evtl. schon jemand ähnlich Probleme mit dieser Appnote hatte sind Vorschläge natürlich immer Willkommen. Den Quellcode habe ich auch mal noch angehängt. Danke, Christof