Поделитесь опытом: как обращаться к переменной из программы и прерывания
Отправлено
507 12 октября 2008 г. 11:55
Думаю проблема весьма распространённая. Есть прерывание (по таймеру например) которое увеличивает счетчик секунд (volatile unsigned long sec) а из мэйна надо это значение считывать и что-то с ним делать. (может быть и наоборот - основной цикл заносит в переменную значение, а в прерывании оно считывается). В любом случае если эта переменная длинная (лонг например), то за такт к ней обращение не получается. И может случится что половину только записали и ушли в прерывание. Понятно что самый просто способ это запрещать прерывание на это время. Я вот например ещё так делаю:
long getTicks(void) { long res=sec; while(res!=sec); return res; }