Hardware-Umstieg: EIN AS-Projekt auf xmega & atmega

Gast #3585653
Lesenswert?

Hallo zusammen

ich habe ein Projekt das auf zwei verschiedenen Hardware-Versionen 
laufen soll...eine Version mit Xmega256A3 und eine mit Atmega1284.

Vieles muss ich natürlich dafür mit "#if" "else" ... etc. anpassen aber 
nun zur Hauptfrage:
Wie kann ich im Atmel Studio 6 den Prozessortyp per define umstellen und 
compilier-fähig bekommen?

Kennt ihr gute Tutorials die mir die Einarbeitung in die 
Xmega-Hardware(bereits vorhanden) erleichtern?

Vielen Dank im Voraus
NickNack
#3585946
Lesenswert?

Das kannst du mit _AVR_Device_ bestimmen. Der Teil "Device" ist 
abhängig vom "-mmcu=" welches durch AVR-Studio gesetzt wird
1
Setting -mmcu=device defines this built-in macro which reflects the device's
2
name. For example, -mmcu=atmega8 defines the built-in macro __AVR_ATmega8__,
3
-mmcu=attiny261a defines __AVR_ATtiny261A__, etc.

Du kannst im Code also sowas machen wie
1
#if __AVR_ATmega8__
2
  DDRB = 0x0F;
3
#elif defined (__AVR_ATXmega32A4__)
4
  PORTB.DDR = 0x0F;
5
#endif
Es gibt sonst auch noch _AVR_ARCH_, _AVR_XMEGA_ etc zum 
Unterscheiden
Gast #3594427
Lesenswert?

Timmo H. schrieb:
> Setting -mmcu=device defines this built-in macro which reflects the
> device's
> name. For example, -mmcu=atmega8 defines the built-in macro
> _AVR_ATmega8_,
> -mmcu=attiny261a defines _AVR_ATtiny261A_, etc.

Wo steht welches macro für den "ATXmega256A3U" und für den "Atmega1284P" 
definiert werden?

Folgendes funktioniert leider nicht:
#if _AVR_ATXmega256A3U_
setSysClockTo32MHz();
#endif

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren