mhepp píše:A není problém v té proměnné i?
Není, i je statická a proto si uchovává svou hodnotu i mezi jednotlivými spuštěními interruptové rutiny.
V principu je špatně, pokud se něco v main() porovnává a zároveň na pozadí v přerušení se s těmito daty manipuluje. Proměnná prijato je v pořádku, nemá cenu provnávat dokola nehotová data. Ale jak testování prijato tak strcmp() by se mělo provádět s vypnutým přerušením od UART. A po otestování zprávy na ON se nastaví prijato na 0 a terpve pak se povolí přerušení. V operačních systémech máme k dispozici kritické sekce nebo mutexy, tady si musíme vystačit s vypínáním/zapínámí přerušení.