прога не работает хелп!
- Войдите на сайт для отправки комментариев
Чт, 30/08/2018 - 11:12
int Bigpperiod; // длительность медленного полупериода int MaxBigpperiod; // max длительность медленного полупериода int Bigpause; int imp; // длительность заполняющего импульса int pause; int maxi5; //максимальная длительность импульса при 5 КГц заполнения int maxi10; //максимальная длительность импульса при 10 КГц заполнения int Fq;//частота заполнения 5 или 10 КГц int stepDlitF; int i5; int i10; int step5; int step10; int stepF; int BUT1=2; int BUT2=3; int BUT3=4; int BUT4=5; int REFmn=6; int T12pl=7; int L5pl=8; int C5pl=9; int REFpl=10; int T12mn=11; int L5mn=12; int C5mn=13; int timer1; int timer2; void setup() { maxi5=190; maxi10=95; Fq=5; i5=10; i10=5; step5=10; step10=5; MaxBigpperiod=100; stepF=5; pinMode (BUT1, INPUT); pinMode (BUT2, INPUT); pinMode (BUT3, INPUT); pinMode (BUT4, INPUT); pinMode (REFpl, OUTPUT); pinMode (T12pl, OUTPUT); pinMode (L5pl, OUTPUT); pinMode (C5pl, OUTPUT); pinMode (REFmn, OUTPUT); pinMode (T12mn, OUTPUT); pinMode (L5mn, OUTPUT); pinMode (C5mn, OUTPUT); } void loop(){ if (analogRead (BUT1>900))//изменение медленной частоты { MaxBigpperiod= MaxBigpperiod-stepF; if (MaxBigpperiod==0) { MaxBigpperiod=100;} } if (analogRead (BUT2>900)) //изменение длительности медленного полупериода { stepDlitF = MaxBigpperiod/5; Bigpperiod = MaxBigpperiod-stepDlitF; if (Bigpperiod<stepDlitF) { Bigpperiod = stepDlitF;} Bigpause = MaxBigpperiod-Bigpperiod; } if (analogRead (BUT3>900)) //изменение частоты заполнения (5 или 10 кГц) { if (Fq==5) {Fq=10;} else {Fq=5;} } if (analogRead (BUT4>900)) //изменение длительности заполняющих импульсов { if (Fq==5) {imp= i5+step5; pause=maxi5-i5; } else { imp=i10+step10; pause=maxi10-i10;} } timer1=millis (); do { digitalWrite (REFmn, HIGH); digitalWrite (T12pl, HIGH); digitalWrite (L5pl, HIGH); digitalWrite (C5pl, HIGH); delayMicroseconds(imp); digitalWrite (REFmn, LOW); digitalWrite (T12pl, LOW); digitalWrite (L5pl, LOW); digitalWrite (C5pl, LOW); delayMicroseconds(pause); } while ((millis()-timer1)<Bigpperiod); delay (Bigpause); // Bigpause =MaxBigpperiod - Bigpperiod длительность паузы между медленными полупериодами timer2=millis(); do { digitalWrite (REFpl, HIGH); digitalWrite (T12mn, HIGH); digitalWrite (L5mn, HIGH); digitalWrite (C5mn, HIGH); delayMicroseconds(imp); digitalWrite (REFpl, LOW); digitalWrite (T12mn, LOW); digitalWrite (L5mn, LOW); digitalWrite (C5mn, LOW); delayMicroseconds(pause); } while ((millis()-timer2)<Bigpperiod); delay (Bigpause); }
Доброго времени суток! Делаю генерацию импульсов с изменением длительности импулса и длиной пачки импульсов. Осцилографом смотрю- импульсы есть- изменений нет. Может кто подсмотрит- увидит в чем ошибка?
Попробуйте сами себе внятно объяснить, что написано в строках №№ 56, 62, 70 и 76
Затем посмотрите описания analogRead и if и попробуйте объяснить ещё раз.
А вообще, то, что
прога не работает
это нормально - они всегда через пень-колоду работают. Нормально работают программы.
Спасибо! Увидел. Признаю- был не прав.