Генератор с регулируемой частотой. Помогите пожалуйста!!!!

Ислам Урус
Offline
Зарегистрирован: 08.07.2016

int out_pin=13;// нога генератора 
int Pin = A0;// нога потенциометра 
int frequency = 1; // частота от 1 до 50 
int led = 6; 
void non_stop_program1(uint16_t span) { 
  static uint32_t future = 0; 
  static uint8_t stat = 0;   
  if (millis()<future) return ; 
  future += span; 
  stat =!stat; 
  digitalWrite(out_pin, stat);

} 
void setup() {  
  pinMode(out_pin, OUTPUT); 
  Serial.begin(9600);
pinMode(led, OUTPUT);

} 
void loop() {  
  frequency = map(analogRead(Pin), 0, 1023, 1, 50); 
  non_stop_program1(500/frequency); 
    Pin = analogRead(0);
  analogWrite(led, Pin/4);
  Serial.print(Pin/4);


} 

 

Ислам Урус
Offline
Зарегистрирован: 08.07.2016

Это генератор с регулируемой частотой от 1 до 50 Гц. Частота на его выходе ужасно плавает, можно ли решить это??? Помогите пожалуйста!!!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

странный ник. странный код. если добавишь коментарий к каждой строчке  почему так сделал тогда можно поговорить

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

Код, действительно, странный.

Чтобы частота не плавала (точнее, плавала значительно меньше - в пределах нестабильности кварца), нужно использовать аппаратный таймер.

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

Господа, это ж просто троль:

строка 21 - читаем Pin

строка 23 - в номер пина Pin запоминаем некий мусор.

========================

Ну если не троль, то просто сумасшедший какой-то.

Да и ник подозрительный ;) ;) ;)... (шутка, если что)

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

wdrakula, у этого товарища  похоже трудности не только с освоением ардуино, но и вообще..  ему ещё в августе   qwone  написал тот скетч что в начале этого топика.  Потом он в течении последующих 4х месяцев периодически снова просил "генератор 50 Герц" в разных темах. И вот уже зима, и опять всплыл тот скетч в которой добавилось две строчки с какой-то пургой.

Я для сравнения через 3 месяца после начала изучения ардуино и языка Си  уже писал свои  алгоритмы шумоподавления ацп  Притом что считаю себя довольно туповатым в плане освоения чего либо нового..