Hallo,
ich möchte gern ein Flag im TIFR Register abfragen Timer1 Match A
also Bit 4
Ich will das nicht mit einem IR machen sondern mit einer Schleife
loop: sbis TIFR, 4
rjmp loop
aber das AVR Studio gibt mir einen Fehler aus
Kann ich direkt auf das Register in der Form zugreifen?
Controller ist ein Maga 16
Hi René,
SBIS/C funktioniert nur für die unteren 32 I/O-Register.
Je nach AVR geht es so:
loop:
in reg, TIFR
sbrs reg, 4
rjmp loop
oder so (bei AVRs, bei denen TIFR im "memory mapped" Bereich liegt):
loop:
lds reg, TIFR
sbrs reg, 4
rjmp loop
Gruß
Fred
> ...
Genau das ging ja bei René nicht, da TIFR beim Mega16 bei 0x38 liegt,
also oberhalb der unteren 32 I/O-Adressen, und demnach nicht mit
sbis/sbic zugänglich ist.
Gruß
Fred
@Fred
Das ist mir schon klar, ich wollte bloß anfügen, daß eine
in/sbrs-Kombination 'umständlicher' ist als sbis. Daß das in diesem Fall
aufgrund der Adresse nicht geht, hast du ja schon geschrieben...
Tassilo
Danke euch es geht.
Verwirrend ist wenn man in TIFR ein bit löschen will muß man eine 1 auf
das entsprechende Bit schreiben.
Aber naja letztendlich geht es so wie es soll.
René wrote:
> Verwirrend ist wenn man in TIFR ein bit löschen will muß man eine 1 auf> das entsprechende Bit schreiben.
Warum? Du benutzt doch auch Windows, und wenn du das anhalten willst,
musst du über ,,Start'' gehen. ;-)
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_intbits
>Verwirrend ist wenn man in TIFR ein bit löschen will muß man eine 1 auf>das entsprechende Bit schreiben.
Das ist zwar verwirrend, aber ziemlich praktisch. Stell dir vor, du
müsstest eine "0" reinschreiben. Ohne dann die anderen Bits
versehentlich zu beeinflussen müsstest du dann so vorgehen, denn du
weißt ja nicht, wie die Bits momentan gesetzt sind:
1. Register einlesen
2. Bit löschen
3. Register schreiben
Aber so wie es Atmel umgesetzt hat, brauchste nur die "1" an die
richtige Stelle zu schreiben, es ist egal, was an den andren Stellen
steht.
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.