прога не работает хелп!
- Войдите на сайт для отправки комментариев
Чт, 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 и попробуйте объяснить ещё раз.
А вообще, то, что
прога не работает
это нормально - они всегда через пень-колоду работают. Нормально работают программы.
Спасибо! Увидел. Признаю- был не прав.