Gast
#3109151
Frohe Ostern, verstehe ich das richtig das ich das T-Bis im SREG Register für mich frei zur Verfügung habe so das ich es für mich gebrauchen darf. Also nur ich verändere die Werte in dem T-Bit?
|
Anzeige
|
SREG beim ATMega88
Gast
#3109151
Frohe Ostern, verstehe ich das richtig das ich das T-Bis im SREG Register für mich frei zur Verfügung habe so das ich es für mich gebrauchen darf. Also nur ich verändere die Werte in dem T-Bit?
Gast
#3109152
Yep. Steht so im AVR Instruction Set Pdf: "T: Transfer bit used by BLD and BST instructions"
Gast
#3109156
Danke für die Antwort. Auf Seite 11 steht das, nur ist mein Englisch nicht das beste und ich wollte mal nummersicher gehen. Kleiner Tipp: Die Mega48/88/168/328 haben zwei Register (GPIOR1 und GPIOR2) die du als generelle Register für Flags o.ä. benutzen kannst.
Gast
#3109173
Matthias Sch. schrieb: > GPIOR1 Matthias Sch. schrieb: > Kleiner Tipp: Die Mega48/88/168/328 haben zwei Register (GPIOR1 und > GPIOR2) die du als generelle Register für Flags o.ä. benutzen kannst. Klasse Danke. General purpose = Allzweck ... meine rede mein Englisch. Wird mir wohl immer zum Nachteil sein. Matthias Sch. schrieb: > Kleiner Tipp: Die Mega48/88/168/328 haben zwei Register (GPIOR1 und > GPIOR2) die du als generelle Register für Flags o.ä. benutzen kannst. Die Register hätte ich auch schon wieder fast vergessen. :-) Werden die drei GPIOR eigentlich von Compilern für irgendwelche Zwecke genutzt, oder kann man sie als User bedenkenlos verwenden, um irgendwelche Daten zu speichern? Schneller als Stack-Zugriffe sind "in" und "out" ja allemal.
Gast
#3109217
Markus Weber schrieb: > Werden die drei GPIOR eigentlich von Compilern für irgendwelche Zwecke > genutzt AVR_gcc: Nein, werden sie nicht, solange du sie nicht explizit zuweist, zB. durch #define gflags GPIOR0 Ich würde auch immer mit GPIOR0 loslegen, weil das eine Adresse < 0x20 hat (bei Mega48/88/168/328). Damit kann der Compiler SBI, CBI, SBIS, und SBIC verwenden. Reduziert Codegröße. @ katastrophenheinz (Gast) >Ich würde auch immer mit GPIOR0 loslegen, weil das eine Adresse < 0x20 >hat (bei Mega48/88/168/328). >Damit kann der Compiler SBI, CBI, SBIS, und SBIC verwenden. Reduziert >Codegröße. Und ist atomar, siehe Interrupt. katastrophenheinz schrieb: > Ich würde auch immer mit GPIOR0 loslegen, weil das eine Adresse < 0x20 > hat (bei Mega48/88/168/328). Hehehe, und ich habe GPIOR0 vergessen. Sind also wirklich insgesamt 3 von den Dingern: 0x1E GPIOR0 bit addressierbar 0x2A GPIOR1 0x2B GPIOR2 Jetzt wirds aber spannend. Wie legt man denn nun eine Variable da rein?
scheint jedenfalls nicht zu klappen. IAR nimmt etwas wie
aber das geht ja bei AVR GCC nicht. Matthias Sch. schrieb: > Jetzt wirds aber spannend. Wie legt man denn nun eine Variable da rein? Zeitumstellungsgeschädigt? Hatte katstrophenheinz doch geschrieben: #define mFlags GPIOR0 A. K. schrieb: > Zeitumstellungsgeschädigt? Hatte katstrophenheinz doch geschrieben: > #define mFlags GPIOR0 Das habe ich auch gelesen. Also etwas genauer: Die Frage ist, wie erkläre ich ein typedef oder ne union, um tatsächlich einzelne Flags darin anzusprechen. Nehmen wir z.B. an, ich habe so etwas:
Wie packe ich so etwas nun in GPIOR0? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|