Lepší C++ pro AVR i do Microchip studia

Pavel Hudeček edizon na seznam.cz
Pátek Leden 3 22:14:02 CET 2025


Dobrý den všem,

tak jsem 10 sekund gůglil a:
https://github.com/ZakKemble/avr-gcc-build/releases/tag/v14.1.0-1

Rozbaleno do Program files
V MCh studiu nastaveno jako další flavour a ejhle najednou chodí C++ 
konstrukce co dřív nechodily

Např. taková testovací blbůstka, ovládat část LEDek dle počtu argumentů:

template <typename T> void ledSet1(uint8_t idx, T arg) {
     if (idx<4) {
         if (arg==0) LED_03port.OUTCLR = 1<<(LED_0bp+idx);
         else        LED_03port.OUTSET = 1<<(LED_0bp+idx);
     } else {
         if (arg==0) LED_46port.OUTCLR = 1<<(LED_4bp-(idx-4));
         else        LED_46port.OUTSET = 1<<(LED_4bp-(idx-4));
     }
}
template <class ...C> void test(C ... args) {
     uint8_t siz = sizeof...(C);
     uint8_t res[siz]={args...};

     if (siz>7) { pip(100}; return; }
     for (uint8_t n=0; n<7; n++) {
         if (n>=siz) ledSet1(n, 0);
         else        ledSet1(n, res[n]);
     }
}
Červený místa po ... zůstaly, ale přeložit jde a funguje.
Tohle otestováno na vzorovém, ručně kresleném blikopípátku s ATtiny814 
na kroužek, ale chodí i jiné věci třeba pro AVR64DD32.

Vždycky jsem si myslel, že na ty nový AVR má Microchip nějakej novej 
překladač, ale nikoliv.
Jen jsem teda nezjistil jak to jinak než editací PRJ přepínat u 
existujícího projektu, musí se ten flavour vytvořit a nastavit v 
globálních settings jako default pro nový.

PH


Další informace o konferenci Hw-list