www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Abfrage des uC Typs


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, arbeite mich gerade in die UART Lib von Peter Fleury ein. Was mir 
da auffällt, sind die div. Abfragen z.B. in der uart.c
#elif  defined(__AVR_ATmega8__)  || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
  || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) \
  || defined(__AVR_ATmega323__)
  /* ATmega with one USART */
 #define ATMEGA_USART
 #define UART0_RECEIVE_INTERRUPT   SIG_UART_RECV
 #define UART0_TRANSMIT_INTERRUPT  SIG_UART_DATA
 #define UART0_STATUS   UCSRA
 #define UART0_CONTROL  UCSRB
 #define UART0_DATA     UDR
 #define UART0_UDRIE    UDRIE

Das dient ja sicher dazu, dass der Code universell einsatzbar ist. Aber 
was ich mich frage ist, wo der Wert '__AVR_ATmega8__' gesetzt wird. Ich 
arbeite mit AVR Studio 4 und starte ein Projekt imme rmit dem Wizard dem 
ich den uC immer mitteile. (Zuerst dachte ich, dass das nur für die 
Simulation relevant ist... .)

Im makefile, das der Wizard anlegt ist dann lediglich 'MCU = atmega8' zu 
finden.

Sorry für so eine blöde Frage...
Peter

Autor: Andreas Vogt (tico)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter wrote:
> Sorry für so eine blöde Frage...

Da bis jetzt niemand geantwortet hat, weiß es offenbar keiner. Folglich 
kann die Frage nicht so blöd sein. ;)

Die Antwort ist: Der Compiler definiert diese Makros in Abhängigkeit von 
dem Wert, den Du im makefile angibst. Also für atmega8 definiert der 
Compiler das Makro _AVR_ATmega8_ usw. Nachlesen kann man das ganze 
hier: http://www.it.lth.se/digp/Avr-libc-1.4.3/using_tools.html

Gruss
Andreas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.