Hallo, ich habe ein C Programm mit eingebundenen Assembler Dateien geschrieben. Eine Interruptroutine ist in Assembler verfasst. Diese änder den Wert im Register R18. Nun möchte ich in meinem Hauptprogramm (in C) dieses Register auslesen und an eine andere Funktion übergeben. Doch wie kann ich in C direkt auf das Register zugreifen? Vielen Dank.
r18 ist unpraktisch, da es zu den Arbeitsregistern des Compilers gehört. Du musst ein Register fest an eine Variable binden, wie das geht, steht hier: http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_regbind (Ich gehe mal von AVR-GCC aus.) Sinnvollerweise benutzt man dafür Register ab r2 aufsteigend, das ergibt die geringste Kollisionswahrscheinlichkeit mit der normalen Compilernutzung.
Dankeschön! Ich hatte die FAQs schon überflogen und ich hab heute auch noch gesehen, dass es im AVR-GCC Tutorial ähnlich erklärt wird. Ich hätte wohl nicht gleich einen Beitrag dazu schreiben sollen sondern erst denken ...
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.