Мигание светодиодом с заданным периодом
Написал dimm71 дата Вс, 02/26/2012 - 19:13
Пишу программу и столкнулся с проблемой. Не могу заставить мигать светодиодом заданное время (3 секунды горит/ 3 не горит) не использую delay_ms т.к. контроллер что и делает, только занимается отсчетом задержки. А в данном случае, он промигивает и ждет 2 секунды. Как можно обойти, что бы не загружать контроллер. Вот кусочек кода:
static unsigned char e=0; e++; if (e > 31*2) { e=0; if (GetLevelDOLIV()==1) { SIGNAL_PORT =! SIGNAL_PORT; } } else SIGNAL_PORT = 0;
Если можно с примерчиком. Часто упоминается про nop но пока не понимаю как его использовать
»
1. Какой МК используешь? 2.
1. Какой МК используешь?
2. Что еще кроме мигалки будет делать МК?
3. В Какой программе пишешь код? (AVR Studio или CV AVR)
Че такой код странный? )))
Зачем такое условие ставить? "e > 31*2"
Расскажи что еще будет МК едлать а то похоже на кусок кода вырванного из чужой программы с сложной архитектурой.
1. Atmega8 2. Эта программа
1. Atmega8
2. Эта программа для автодолива. Принцип такой, при замыкании нужного электрода, будет происходить включение/отключение помпы и подаваться сигнал(пищалка. вместо пищалки сейчас светодиод)
3. CV AVR
4. Программу мне помогли написать. Все рабочее, только не могу заставить мигать светодиод заданное время (2 секунды горит/ 2 секунды не горит) получается промигивание каждые 2 секунды. Естественно, пищалка не будет работать должным образом.
Вот кусочек кода по больше:
Для светодиода заводи
Для светодиода заводи переменную int, завай ей начальное значение 0 (светодиод не горит), в теле программы, когда выполняется работа долива/отлива каждые 2 секунды надо менять эту переменную на 1 и наоборот. Ставишь проверку на простой конструкции
Две секунды можно отсчитывать внутернним таймером.
Не очень разбираюсь в
Не очень разбираюсь в программировании. Если можно на моем примерчике. Куда что вставить, для наглядности
Так код же не полный, не
Так код же не полный, не видно всей его структуры. И еще момет, я просто пишу под AVR Studio уних с CV AVR синтаксис немного разный. Для понимания работы программы со структурой прийдется разобраться, без этого ну совсем никак.