| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Не изменяется ли переменная? |
| Автор: Коляй 16.8.2006, 12:51 | ||
Ребята, СИ недавно начал изучать. Можно ли так писать? Не изменяется ли переменная Т во время проверки условия?
Вот не изменяется ли сама Т? А то неровно как то работает - то два раза за секунду выведет, то через две секунды. Что неправильно? (В условиях это я кратность проверяю) |
| Автор: ManiaK 16.8.2006, 17:23 |
Мой метод Переменная не меняется, просто блоки вывода на жки у тебя могут занимать стока времени, что программа не успеет вовремя попасть во все блоки кратности. Надо, как это ни накладно, на каждый временной цикл свою переменную-счётчик выделять и в прерывании от таймера только декрементировать эти счётчики и ставить флаги, мол, отсчитали своё. А в main::while(1) уже смотреть флаги. Так более надёжно, хотя тоже не лишено проблем... Надёжней всего разбивать все процедуры так, что они за один раз будут выполняться не дольше, чем период таймера. |
| Автор: Коляй 17.8.2006, 20:13 |
| Спасибо. Именно не успевает. Кроме этого, ещё два прерывания работают, одно из них через 6 мс и занимает само 3,5мс (когда по максимуму всё), а на саму программу и не остаётся почти ничего. Придётся переделывать и программу и аналоговую часть! Поспешил однако... |