ATmega Flags checken

Gast

Cyblord -. schrieb:

So Pauschal natürlich Unsinn. Es kommt darauf an ob die Symbole in der verwendeten Headerdatei Bitmasken oder Bitnummern sind. Das hat mit der Architektur gar nichts zu tun.

Die Struktur der Header Dateien (CMSIS Core) ist von ARM vorgegeben.

Steve van de Grens schrieb:

Cyblord -. schrieb:

So Pauschal natürlich Unsinn. Es kommt darauf an ob die Symbole in der verwendeten Headerdatei Bitmasken oder Bitnummern sind. Das hat mit der Architektur gar nichts zu tun.

Die Struktur der Header Dateien (CMSIS Core) ist von ARM vorgegeben.

Nein es werden die CMSIS Header von ARM bereitgestellt. Was niemand dazu verpflichtet diese zu benutzen und keine Anderen. Also wäre deine Aussage korrekt wenn du schreiben würdest dass dies bei CMSIS Nutzung die korrekte Vorgehensweise wäre. Abgesehen davon sind die Peripherieregister gar nicht Teil der CMSIS sondern Herstellerabhängig. Und z.B. STM kann hier bei StdPeriphLib oder HAL machen was sie wollen. Teilweise werden Masken und Nummern parallel angeboten.

Jannik schrieb:

Also so?

1
if (TIFR0 & OCF0A) {
2
>        // hier die Anweisungen, wenn das Bit gesetzt ist
3
>     }

Nein. Und das haben die anderen ja schon zur Genüge geschrieben.

Das Traurige dabei ist, dass es überhaupt möglich ist, so einen Mist erfolgreich zu compilieren: TIFR0 ist von DT volatile uint8_t und OCF0A ist schlicht ein int-Literal. Dabei ist prinzipiell einfach das zu verhindern!

Wilhelm M. schrieb:

Nein. Und das haben die anderen ja schon zur Genüge geschrieben.

Das Traurige dabei ist, dass es überhaupt möglich ist, so einen Mist erfolgreich zu compilieren: TIFR0 ist von DT volatile uint8_t und OCF0A ist schlicht ein int-Literal. Dabei ist prinzipiell einfach das zu verhindern!

Na dann mal los, schreib komplett neue Header und die ganze Definitionen für die IO-Register.

Falk B. schrieb:

Wilhelm M. schrieb:

Nein. Und das haben die anderen ja schon zur Genüge geschrieben.

Das Traurige dabei ist, dass es überhaupt möglich ist, so einen Mist erfolgreich zu compilieren: TIFR0 ist von DT volatile uint8_t und OCF0A ist schlicht ein int-Literal. Dabei ist prinzipiell einfach das zu verhindern!

Na dann mal los, schreib komplett neue Header und die ganze Definitionen für die IO-Register.

Das kann man aus den XML-Files der Hersteller generieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.