Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[ATMEL STUDIO] - Jak rozróżnić XMEGĘ od ATMEGI w Atmel Studio ?

t__d 21 Feb 2014 11:38 2025 4
  • #1
    t__d
    Level 9  
    Witam.

    Mam następujący kod w Atmel Studio6.1:

    Code: c
    Log in, to see the code


    Jako uC wybrałem XMEGA128A3U. Teoretycznie powinien skompilować się tylko kod pod XMEGA. Niestety kompilują się oba kody. Dodatkowo co dziwne oba są pokazane jako "przygaszone" czyli jakby __AVR_XMEGA__ i __AVR_MEGA__ nie były zdefiniowane.

    Pod Eclipse wszystko działa poprawnie a pod Atmel Studio nie chce działać poprawnie. Co robię źle ?
  • #2
    Steryd3
    Level 33  
    No to zdefiniuj na początku main.c "#define __AVR_XMEGA__" i będzie po sprawie. Atmel studio z tego co kojarzę nie dodaje "z automatu" tego typu definicji. Można pewne rzeczy zdefiniować w odpowiednim miejscu, ale trzeba to zrobić samemu. Polecam: http://mikrokontrolery.blogspot.com/ - tam wszystko jest opisane.
  • #3
    t__d
    Level 9  
    Steryd3 wrote:
    No to zdefiniuj na początku main.c "#define __AVR_XMEGA__" i będzie po sprawie.


    No nie do końca bo wprawdzie część definicji z XMEGA podświetla się wtedy poprawnie ale kompilują się obie części.
  • #5
    t__d
    Level 9  
    piotrva wrote:
    A czy nie lepiej zamiast drugiego warunku dać #ifndef?


    Mogę dać też else ale czy to lepiej ? A co gdy będę chciał dać inne warunki a one nie będą mi działały? Dodatkowo z tym niezdefiniowaniem __AVR_XMEGA__ to jest dziwna sprawa ponieważ niby zdefiniowane nie jest a jak to zdefiniuję to dostaję komunikat: Warning __AVR_XMEGA__ redefined [enabled by default].