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