Re: Прерывания в Arduino.
1. unsigned int ledValue = 0; возможно глюк эмуляции, но знаковая переменная не может принять значение 60000.
2. это можно сделать без отдельного таймера, воспользовавшись millis. вот пример. там как бы все расписано. delay(led1Value) по-моему вполне допустим - 60мс не так много.
вот код. ставится в цикл.
PHP код:
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > ledValue)
{
previousMillis = currentMillis;
digitalWrite(ledPin, HIGH);
delay(led1Value);
digitalWrite(ledPin, LOW);
}
3. если хочется сделать через отдельный таймер, можно так. громоздко. да и таймер с периодом 1мс и так есть.
PHP код:
MsTimer2::set(1, flash);
void flash()
{
if(digitalRead(ledPin)==HIGH)
{
time1++;
if(time1>=led1Value)
{
digitalWrite(ledPin,LOW);
time2=0;
}
}
if(digitalRead(ledPin)==LOW)
{
time2++;
if(time2>=ledValue)
{
digitalWrite(ledPin,HIGH);
time1=0;
}
}
}
оба варианта рабочие
Re: Прерывания в Arduino.
Цитата:
Сообщение от
manu_245
оба варианта рабочие
спасибо огромное ща попробую....
upd...
применил первый вариант всё отлично заработало, ещё раз огромное спасибо за подсказку...
Re: Прерывания в Arduino.
Всем привет. Я новичёк на этом форуме, поэтому тему создать не могу... мало сообщений. Поэтому вопрос: собственно у меня есть желание сделать автоматическую горелку на отработанном масле, для отопления бокса. Сам занимаюсь ремонтом авто... диагностика и тд. Есть атмега 2050, ЛСД- дисплей 20Х4 с I2C протоколом, датчики температуры и релейный блок с опторазвязкой. Вроде всё, что нужно есть. Теперь самое интересное... Как организовать опрос клавиатуры? На данный момент реализовал на Timer01 с самой маленькой частотой опроса ~ 50 Гц. Как часто опрашивать датчики температуры, это которые однопроводные, у меня по плану их будет 4-8 шт. и стоит ли их опрашивать в цикле прерывания? Как организовать структурное меню, типа текущие параметры, установки, аварийная сигнализация и тд... в смысле линейного или векторного программирования? Стоит ли выводить ШИМ на масляный насос и нагреватель масла или можно просто реле поставить? Корохе много вопросов...