Poprzedni temat «» Następny temat
Alternatywa dyrektywy #warning preprocesora AVR GCC?
Autor Wiadomość
c4v2 



Dołączył: 22 Lis 2005
Posty: 407
Skąd: z przed monitora
Wysłany: 2016-08-21, 20:18   Alternatywa dyrektywy #warning preprocesora AVR GCC?

Czy Szanowni Forumowicze znają jakiś sposób na przekierowanie wartości makra zdefiniowanego dyrektywą #define do okna wyników kompilacji w AVR Studio v4.17 współpracującego z kompilatorem C z WinAVR-20100110.
Przy kompilacji warunkowej gdy makro przyjmuje różne wartości stosowanie dyrektywy #warning (akceptuje jedynie łańcuch znakowy) jest uciążliwe. Przykład:
Kod:

#undef ADPS
#define ADPS (_BV(ADPS0))
#if (F_CPU>>1)<50000
  #warning ADC clock frequency < 50kHz, require ADC clock frequency between 50kHz and 200kHz
#endif
#if ((F_CPU>>1)>200000)
  #undef ADPS
  #define ADPS (_BV(ADPS1))
#endif
#if (F_CPU>>2)>200000
  #undef ADPS
  #define ADPS (_BV(ADPS1)|_BV(ADPS0))
#endif
#if (F_CPU>>3)>200000
  #undef ADPS
  #define ADPS (_BV(ADPS2))
#endif
#if (F_CPU>>4)>200000
  #undef ADPS
  #define ADPS (_BV(ADPS2)|_BV(ADPS0))
#endif
#if (F_CPU>>5)>200000
  #undef ADPS
  #define ADPS (_BV(ADPS2)|_BV(ADPS1))
#endif
#if (F_CPU>>6)>200000
  #undef ADPS
  #define ADPS (_BV(ADPS2)|_BV(ADPS1)|_BV(ADPS0))                     
#endif

#if (ADPS)==1
  #warning ADPS: '_BV(ADPS0)  //Prescale 2'
#endif
#if (ADPS)==2
  #warning ADPS: '_BV(ADPS1)  //Prescale 4'
#endif
#if (ADPS)==3
  #warning ADPS: '_BV(ADPS1)|_BV(ADPS0)  //Prescale 8'
#endif
#if (ADPS)==4
  #warning ADPS: '_BV(ADPS2) //Prescale 16'
#endif
#if (ADPS)==5
  #warning ADPS: '_BV(ADPS2)|_BV(ADPS0)  //Prescale 32'
#endif
#if (ADPS)==6
  #warning ADPS: '_BV(ADPS2)|_BV(ADPS1)  //Prescale 64'
#endif
#if (ADPS)==7
  #warning ADPS: '_BV(ADPS2)|_BV(ADPS1)|_BV(ADPS0) //Prescale 128'
#endif


Dla każdej z możliwych wartości makra ADPS trzeba definiować oddzielny komunikat.
Czy jest jakiś inny sposób by można było bezpośrednio wyświetlić w oknie wyników kompilacji wartości makra ADPS w postaci wyliczonej lub niewyliczonej (rozwiniętej).
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,02 sekundy. Zapytań do SQL: 10