Меандр частотой 0.25Гц.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

Всем добрый день.

Вопрос наверно больше всего адресован к dimax. Суть проблемы получить аппаратный меандр с частотой примерно 0.25Гц - 0.5Гц с возможность включения и выключения из loop,  но ВСЁ дело в том что все таймеры используются в программе (таймер 3 - собака, таймер 2 - ТОНЕ, таймер 1 VirtualWaire, таймер 0 - аппаратный PWM).  Если есть варианты толкните в нужном направлении. 

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

oleg_kazakof, взять арудино мега, там много таймеров :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ну еще один, причем очень подходящий таймер есть в RTC DS3231

Ведь в любом проекте есть часы, так? ну так воспользуйтесь дополнительными ножками этих часов.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

dimax пишет:

oleg_kazakof, взять арудино мега, там много таймеров :)

Мега слишком жирно, RTS нет

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Внешний генератор на логике или 555 таймере, управляемый с цифрового пина пойдёт?
Можно и с применением кварца замутить, если нужна стабильность...

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

oleg_kazakof пишет:
Суть проблемы получить аппаратный меандр с частотой примерно 0.25Гц - 0.5Гц с возможность включения и выключения из loop.

Если точность +- лапоть, чем не устраивает программный меандр?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

oleg_kazakof, ну раз мега жирно -то микро/промикро -совсем худенькие ) Имеют по два 8-битных и по два 16-битных таймера. И один 10-битный. Правда один 8-битный скрыт от посторонних глаз, подробности обсуждали тут.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

dimax пишет:

oleg_kazakof, взять арудино мега, там много таймеров :)

В Меге мало таймеров. Всего 6. Из них 16-разрядных - только 4.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015
[code]
   if(tembaka>termoporog1){ // уменьшаем мощьность тена
    static unsigned long T_Time = 0; // 
    if(millis() - T_Time > interval ) {//  (1 sek)
    T_Time = millis();  
    if (Ten == LOW)  Ten = HIGH; 
    else 
        Ten = LOW; 
    digitalWrite(tenpin12, Ten);    
 }
    if(tembaka>termoporog2){
    digitalWrite(tenpin13, LOW);}
     }

[/code]

Andy пишет:

oleg_kazakof пишет:
Суть проблемы получить аппаратный меандр с частотой примерно 0.25Гц - 0.5Гц с возможность включения и выключения из loop.

Если точность +- лапоть, чем не устраивает программный меандр?

Вданное время так и сделано, но дело в том что loop плавает в диапозоне 200мс - 900мс и прерывать другие задачи не желательно.

 

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

oleg_kazakof пишет:
Вданное время так и сделано, но дело в том что loop плавает в диапозоне 200мс - 900мс и прерывать другие задачи не желательно.

Так это не loop плавает, а руки не из того места растут. Можно подумать аппаратный таймер не прерывает другие задачи...

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

Andy пишет:

oleg_kazakof пишет:
Вданное время так и сделано, но дело в том что loop плавает в диапозоне 200мс - 900мс и прерывать другие задачи не желательно.

Так это не loop плавает, а руки не из того места растут. Можно подумать аппаратный таймер не прерывает другие задачи...

Если ВЫ такой умныный и руки на месте напишите код который выполнит данную задачу не трогая остальные.

 

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

dimax пишет:

oleg_kazakof, ну раз мега жирно -то микро/промикро -совсем худенькие ) Имеют по два 8-битных и по два 16-битных таймера. И один 10-битный. Правда один 8-битный скрыт от посторонних глаз, подробности обсуждали тут.

dimax, дело всё в том что данная система работает (2 года), поэтому менять аппаратную платформу не желательно ( технически -пайки - перепайки (хотя СОВЕТСКИМ  паяльником 25 Вт без проблем, выпаиваю и впаиваю CMD компоненты)) , программый "меандр" работает по циклу loop и плавает, что не мешает нормальной работе системы,  но просто не красиво мигают индикаторы нагрева.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

oleg_kazakof пишет:

Andy пишет:

oleg_kazakof пишет:
Вданное время так и сделано, но дело в том что loop плавает в диапозоне 200мс - 900мс и прерывать другие задачи не желательно.

Так это не loop плавает, а руки не из того места растут. Можно подумать аппаратный таймер не прерывает другие задачи...

Если ВЫ такой умныный и руки на месте напишите код который выполнит данную задачу не трогая остальные.

Вы где потерялись или руки отсохли.