Помощь в компиляции

luxer
Offline
Зарегистрирован: 23.03.2019

Здравствуйте,помогите в скетче ошибка  'led' was not declared in this scope

[code]
//Страница проэкта  http://srukami.inf.ua/pultoscop_v25110.html
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <FreqCount.h> 
#include <PWM.h>
#include <CyberLib.h>#define led  9   //пин для генератора сигналов (не менять)
#define dds  10   //пин для генератора dds (не менять)
//#################№№№№№№####пользовательские настройки
#define power 8 //пин который опрашивает кнопку включения
#define OFF 14//пин который управляет ключем питания
#define  timepowerON 50 //время удержания кнопки выключения
#define levo 13  //кнопка ЛЕВО(можно любой пин)
#define ok 12    //кнопка ОК(можно любой пин)
#define pravo 11 //кнопка ПРАВО(можно любой пин)
#define akb A5 //любой своюодный аналоговый пин для измерения напряжения АКБ 
#define overclock 16  //Частота на которой работает Ардуино 
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 4, 3, 2);//пины к которым у вас подключен дисплей         
byte cont=52;//контрастность дисплея
byte SinU=30;   //уровень синхронизации 0 до 255 
int PWM = 128;//стартовое значение ШИМ от 0 до 255        
int32_t frequency = 500; //стартовое значение частоты в Гц
float VCC=5.0;  //напряжение питания, меряем мультиметром
//###########################################################
int d=0;
byte menuDDS=0; 
byte sinM[32]={1,6,15,29,48,69,92,117,143,168,191,212,229,243,251,255,254,248,237,222,203,181,156,131,106,81,59,39,22,10,3,1};
byte pilaM[32]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145,153,161,169,177,185,193,201,209,217,225,235,245,255};
byte RpilaM[32]={250,246,238,230,222,214,206,198,190,182,174,166,158,150,142,134,126,118,110,102,94,86,78,70,62,54,41,33,25,17,9,1};
byte trianglM[32]={1,18,35,52,69,86,103,120,137,154,171,188,205,222,239,255,239,223,207,191,175,159,143,127,111,95,79,63,47,31,15,1};
int powerON=0;//состояние кнопки питания
byte hag=0;
int mnog=0;
boolean flag=0;
byte mass[701];
byte x=0; 
byte menu=0;//переменная выбора меню 
bool opornoe=1; //флаг опорного напряжения
bool paus=0; //флаг режима паузы
byte pultoskop=0; //флаг выбора генератора или осциллографа
byte razv=6;  
unsigned long count =0;
byte sinX=30; 
byte meaX=83;
int Vmax=0;// максимальное напряжение 
byte sinhMASS=0;
long countX=0;
long speedTTL=9600; //скорость терминала 
int prokr=0;
void setup(){
pinMode(A4,INPUT);
digitalWrite(OFF,HIGH);//включем питание 
//Serial.begin(9600);
display.begin();
display.setContrast(cont);  
while(digitalRead(ok)==LOW){  
/////////////////////////////////////////удержание кнопки отключения
if(digitalRead(power)==HIGH){powerON++;delay(10);}  
if(powerON>=timepowerON){digitalWrite(OFF,LOW);}///отключаем питание
/////////////////////////////////////////удержание кнопки отключения 
  if(pultoskop==0){
    display.clearDisplay();
    display.setCursor(10,0);
    display.setTextColor(WHITE, BLACK); // 'inverted' text
    display.println("Пультоскоп");
    display.setCursor(10,10);
    display.setTextColor(BLACK); 
    display.println("Генератор");
    display.setCursor(10,20);
    display.println("DDSгенератор");
    display.setCursor(10,30);
    display.println("Терминал");
    display.setCursor(0,40);
    display.print("Батарея=");
    display.print(analogRead(akb)*5.0/1024);
    display.print("В");    
  }
    if(pultoskop==1){
    display.clearDisplay();
    display.setCursor(10,0);
    display.setTextColor(BLACK); // 'inverted' text
    display.println("Пультоскоп");
    display.setCursor(10,10);
    display.setTextColor(WHITE, BLACK); // 'inverted' text
    display.println("Генератор");
     display.setTextColor(BLACK); // 'inverted' text;
    display.setCursor(10,20);
    display.println("DDSгенератор");
    display.setCursor(10,30);
    display.println("Терминал");
    display.setCursor(0,40);
    display.setTextColor(BLACK); 
    display.print("Батарея=");
    display.print(analogRead(akb)*5.0/1024);
    display.print("В");   
  } 
    if(pultoskop==2){
    display.clearDisplay();
    display.setCursor(10,00);
    display.setTextColor(BLACK); // 'inverted' text
    display.println("Пультоскоп");
    display.setCursor(10,10);
    display.println("Генератор");
    display.setTextColor(WHITE, BLACK); // 'inverted' text;
    display.setCursor(10,20);
    display.println("DDSгенератор");
    display.setTextColor(BLACK);
    display.setCursor(10,30);
    display.println("Терминал");
    display.setCursor(0,40);
    display.setTextColor(BLACK); 
    display.print("Батарея=");
    display.print(analogRead(akb)*5.0/1024);
    display.print("В");   
    }
        if(pultoskop==3){
    display.clearDisplay();
    display.setCursor(10,00);
    display.setTextColor(BLACK); // 'inverted' text
    display.println("Пультоскоп");
    display.setCursor(10,10);
    display.println("Генератор");
    display.setTextColor(BLACK);
    display.setCursor(10,20);
    display.println("DDSгенератор");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(10,30);
    display.println("Терминал");
    display.setCursor(0,40);
    display.setTextColor(BLACK); 
    display.print("Батарея=");
    display.print(analogRead(akb)*5.0/1024);
    display.print("В");   
    }
if(digitalRead(levo)==HIGH){delay(300);pultoskop=pultoskop+1;}
if(digitalRead(pravo)==HIGH){delay(300);pultoskop=pultoskop+1;}
if(pultoskop>3){pultoskop=0;}
delay(50);  
display.display(); }
if(pultoskop==2){InitTimersSafe(); bool success = SetPinFrequencySafe(led,200000);}
if(pultoskop==0){FreqCount.begin(1000);}
if(pultoskop==1){InitTimersSafe(); bool success = SetPinFrequencySafe(led, frequency);}
display.setTextColor(BLACK);
delay(500); }   
void Zamer(){
  if (razv>=6){ADCSRA = 0b11100010;}//delitel 4
  if (razv==5){ADCSRA = 0b11100011;}//delitel 8
  if (razv==4){ADCSRA = 0b11100100;}//delitel 16
  if (razv==3){ADCSRA = 0b11100101;}//delitel 32
  if (razv==2){ADCSRA = 0b11100110;}//delitel 64
  if (razv<2){ADCSRA = 0b11100111;}//delitel 128
  if (razv==0){
      for(int i=0;i<700;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          delayMicroseconds(500);
          mass[i]=ADCH;
      }
  }
  if (razv>0){
      for(int i=0;i<700;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          mass[i]=ADCH;
      }
  }
  
}
void loop() {
/////////////////////////////////////////удержание кнопки отключения
if(digitalRead(power)==HIGH){powerON++;delay(10);}  
if(powerON>=timepowerON){digitalWrite(OFF,LOW);}///отключаем питание
/////////////////////////////////////////удержание кнопки отключения    
if(pultoskop==0){  
if(opornoe==0){ADMUX = 0b11100011;}//выбор внутреннего опорного 1,1В
if(opornoe==1){ADMUX = 0b01100011;}//Выбор внешнего опорного
delay(5);
if(paus==0){Zamer();}
//#######################################определение точки синхронизации
bool flagSINHRO=0;
bool flagSINHRnull=0;
for(int y=1;y<255;y++){
  if(flagSINHRO==0){if(mass[y]<SinU){flagSINHRnull=1;}}
  if(flagSINHRO==0){if(flagSINHRnull==1){if(mass[y]>SinU){flagSINHRO=1;sinhMASS=y;}}}}
//#######################################определение точки синхронизации
//максимальное значение сигнала##########################
Vmax=0; 
for(int y=1;y<255;y++){if(Vmax<mass[y]){Vmax=mass[y];} }
//максимальное значение сигнала##########################
//#######################################определение точки синхронизации
//#######################################отрисовка графика 
if(paus==0){
display.clearDisplay();
display.fillCircle(80,47-SinU/7, 2, BLACK);//рисуем уровень синхронизации    
x=3;
for(int y=sinhMASS;y<sinhMASS+80;y++){
      if(razv<7){x++;}
      if(razv==7){x=x+2;}
      if(razv==8){x=x+3;} 
      display.drawLine(x, 47-mass[y]/7, x+1, 47-mass[y+1]/7, BLACK);
      display.drawLine(x+1, 47-mass[y]/7+1, x+2, 47-mass[y+1]/7+1, BLACK);        
}
sinhMASS=0;}
if(paus==1){
display.clearDisplay();
display.drawLine(prokr/8,8,prokr/8+6,8, BLACK);//шкала прокрутки
display.drawLine(prokr/8,9,prokr/8+6,9, BLACK);//шкала прокрутки
          x=3;
          for(int y=prokr;y<prokr+80;y++){
                if(razv<7){x++;}
                if(razv==7){x=x+2;}
                if(razv==8){x=x+3;} 
                display.drawLine(x, 47-mass[y]/7, x+1, 47-mass[y+1]/7, BLACK);
                display.drawLine(x+1, 47-mass[y]/7+1, x+2, 47-mass[y+1]/7+1, BLACK); 
          }}
//#######################################отрисовка графика
for(byte i=47;i>5;i=i-7){display.drawPixel(0,i, BLACK);display.drawPixel(1,i, BLACK);display.drawPixel(2,i, BLACK);}//разметка экрана  вертикальная
//////////////////////////////////////////////////сетка
for(byte i=47;i>5;i=i-3){display.drawPixel(21,i, BLACK);display.drawPixel(42,i, BLACK);display.drawPixel(63,i, BLACK);}
for(byte i=3;i<84;i=i+3){display.drawPixel(i,33, BLACK);display.drawPixel(i,19, BLACK);}
//////////////////////////////////////////////////сетка
//#######################################отрисовка menu
if(menu==0){
    display.setCursor(0,0);
    display.setTextColor(WHITE,BLACK);
    if(opornoe==0){display.print("1.1");}
    if(opornoe==1){display.print(VCC,1);}
    display.setTextColor(BLACK); 
    display.print(" ");
    display.print(razv);
    display.print(" P");
    if(digitalRead(levo)==HIGH){opornoe=!opornoe;}
    if(digitalRead(pravo)==HIGH){opornoe=!opornoe;}    
}
if(menu==1){
    display.setCursor(0,0);
    display.setTextColor( BLACK);
    if(opornoe==0){display.print("1.1");}
    if(opornoe==1){display.print(VCC,1);}
    display.setTextColor(WHITE, BLACK); // 'inverted' text 
    display.print(" ");
    display.print(razv);
    display.setTextColor( BLACK); // 'inverted' text
    display.print(" P");
    if(digitalRead(levo)==HIGH){razv=razv-1;if(razv==255){razv=0;}}
    if(digitalRead(pravo)==HIGH){razv=razv+1;if(razv==9){razv=8;}}
}
if(menu==2){
    display.setCursor(0,0);
    display.setTextColor( BLACK);
    if(opornoe==0){display.print("1.1");}
    if(opornoe==1){display.print(VCC,1);}
    display.print(" ");
    display.print(razv);
    display.setTextColor(WHITE, BLACK); // 'inverted' text 
    display.print(" P");
    paus=1;
    if(digitalRead(levo)==HIGH){prokr=prokr-10;if(prokr<0){prokr=0;}}
    if(digitalRead(pravo)==HIGH){prokr=prokr+10;if(prokr>620){prokr=620;}}    
}
if(menu==3){
    prokr=0;
    paus=0;
    display.setCursor(0,0);
    display.setTextColor( BLACK);
    if(opornoe==0){display.print("1.1");}
    if(opornoe==1){display.print(VCC,1);}
    display.print(" ");
    display.print(razv);
    display.setTextColor(BLACK);
    display.print(" P");
    if(digitalRead(levo)==HIGH){SinU=SinU-20;if(SinU<20){SinU=20;}}
    if(digitalRead(pravo)==HIGH){SinU=SinU+20;if(SinU>230){SinU=230;}}   
    display.fillCircle(80,47-SinU/7, 5, BLACK);
    display.fillCircle(80,47-SinU/7, 2, WHITE); 
}
if(digitalRead(ok)==HIGH){menu++;if(menu==4){menu=0;paus=0;}}//перебор меню
if (FreqCount.available()) { count = FreqCount.read();}//вывод частоты по готовности счетчика
//#######################################частоты сигнала
byte Frec1=0;
long Frec=0;
bool flagFrec1=0;
bool flagFrec2=0;
bool flagFrec3=0;
for(int y=1;y<255;y++){
  if(flagFrec1==0){if(mass[y]<SinU){flagFrec2=1;}}
  if(flagFrec1==0){if(flagFrec2==1){if(mass[y]>SinU){flagFrec1=1;Frec1=y;}}}
  if(flagFrec1==1){if(mass[y]<SinU){flagFrec3=1;}}
  if(flagFrec3==1){if(mass[y]>SinU){
  if (razv>=6){Frec=1000000/((y-Frec1-1)*3.27);}//delitel 4
  if (razv==5){Frec=1000000/((y-Frec1)*3.27)/2;}//delitel 8
  if (razv==4){Frec=1000000/((y-Frec1)*3.27)/4;}//delitel 16
  if (razv==3){Frec=1000000/((y-Frec1)*3.27)/8;}//delitel 32
  if (razv==2){Frec=1000000/((y-Frec1)*3.27)/16;}//delitel 64
  if (razv==2){Frec=1000000/((y-Frec1)*3.27)/32;}//delitel 128
  if (razv==1){Frec=1000000/((y-Frec1)*3.27)/32;}//delitel 128
  if (razv==0){Frec=1000000/((y-Frec1)*500);}//delitel 128
  flagFrec1=0;flagFrec3=0;}}}
//#######################################частоты сигнала
display.setTextColor( BLACK);
if(opornoe==1){
if((Vmax*VCC/255)>2.5){countX=count*(overclock/16.0);}
if((Vmax*VCC/255)<2.5){countX=Frec*(overclock/16.0);}}
if(opornoe==0){countX=Frec*(overclock/16.0);}
if(countX<1000){display.print(" ");display.print(countX);display.print("Hz");}
if(countX>1000){float countXK=countX/1000.0;display.print(countXK,1);display.print("KHz");}
if(opornoe==1){display.setCursor(0,40);display.setTextColor(BLACK);
display.print(Vmax*VCC/255,1);}
if(opornoe==0){display.setCursor(0,40);display.setTextColor(BLACK);
display.print(Vmax*1.1/255,1);}
display.print("V");
//#######################################отрисовка menu
delay(200);  
display.display();
}
if(pultoskop==1){Generator();}
if(pultoskop==2){DDSGenerator();}
if(pultoskop==3){TTL();}
}
//#######################################режим ренератора
void Generator(){
display.clearDisplay();  
if (flag==0){//флаг выборов режима настройки ШИМ или Частоты
            if(digitalRead(levo)==HIGH){
              frequency=frequency-mnog;
              if(frequency<0){frequency=0;}
              bool success = SetPinFrequencySafe(led, frequency);
              delay(3);//защита от дребезга 
            }
            if(digitalRead(pravo)==HIGH){
              frequency=frequency+mnog;
              bool success = SetPinFrequencySafe(led, frequency);
              delay(3);//защита от дребезга 
            }  
}
if (flag==1){//флаг выборов режима настройки ШИМ или Частоты
            if(digitalRead(levo)==HIGH){
              PWM=PWM-1;
              if(PWM<0){PWM=255;} 
              delay(3);//защита от дребезга
            
            }
            if(digitalRead(pravo)==HIGH){
              PWM=PWM+1;
              if(PWM>255){PWM=0;} 
              delay(3);//защита от дребезга 
            }  
}      
if(digitalRead(ok)==HIGH){//переключение разряда выбора частоты 
  delay(3);//защита от дребезга
  hag++;
  if(hag>=5){hag=0;}
////////////
display.setTextSize(1);
display.setCursor(0,5);
display.print("PWM=");
display.print(PWM*100.0/255);
display.print(" %");
display.drawLine(0,0,83*PWM/255.0,0, BLACK);
display.drawLine(0,1,83*PWM/255.0,1, BLACK);
display.drawLine(0,2,83*PWM/255.0,2, BLACK);
display.drawLine(0,15,83*PWM/255.0,15, BLACK);
display.drawLine(0,16,83*PWM/255.0,16, BLACK);
display.drawLine(0,17,83*PWM/255.0,17, BLACK);
///////////    
display.setCursor(5,20);
 display.setTextSize(2);
long frequencyX=frequency*(overclock/16.0);
if(frequencyX<1000){display.print(frequencyX);display.setTextSize(1);display.println("Hz");}
if(frequencyX>1000){if(frequencyX<10000){display.print((frequencyX/1000.0),2);display.setTextSize(1);display.println("KHz");}}
if(frequencyX>=10000){if(frequencyX<100000){display.print((frequencyX/1000.0),1);display.setTextSize(1);display.println("KHz");}}
if(frequencyX>=100000){display.print((frequencyX/1000.0),0);display.setTextSize(1);display.println("KHz");}
display.setCursor(0,40);
display.setTextSize(1);
display.print(">>X ");    
      if(hag==0){//выбор множителя частоты
        
          display.print(1*(overclock/16.0),1); 
          mnog=1;
          flag=0;
      }
      if(hag==1){//выбор множителя частоты
          display.print(10*(overclock/16.0),0); 
          mnog=10;
      }
      if(hag==2){//выбор множителя частоты
          display.print(100*(overclock/16.0),0); 
          mnog=100;
      }
      if(hag==3){//выбор множителя частоты
          display.print(1000*(overclock/16.0),0); 
          mnog=1000;
      } 
      if(hag==4){//выбор  PWM
          display.print("PWM ");
          display.print(PWM*100.0/255);
          display.print("%"); 
          flag=1;
      } 
display.print("<<");        
pwmWrite(led, PWM);
delay(300);  
display.display();
}
/////////////////////DDS
void DDSGenerator(){
int fr=10;
if(menuDDS==0){
    display.clearDisplay(); 
    display.setTextColor(WHITE, BLACK); // 'inverted' text
    display.setCursor(10,0);
    display.println("Синус");
    display.setTextColor(BLACK);
    display.setCursor(10,10); 
    display.println("Треугольник");
    display.setCursor(10,20);
    display.println("Пила");
    display.setCursor(10,30);
    display.println("Пила Обр");
    display.setTextColor(BLACK);
    display.setCursor(0,40);
    //display.print("Частота=");
    //display.print(57);
    //display.print("Гц"); 
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=sinM[d];
      pwmWrite(dds,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
    menuDDS++;
    delay(200);}
if(menuDDS==1){
    display.clearDisplay(); 
    display.setTextColor(BLACK); // 'inverted' text
    display.setCursor(10,0);
    display.println("Синус");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(10,10); 
    display.println("Треугольник");
    display.setTextColor(BLACK);
    display.setCursor(10,20);
    display.println("Пила");
    display.setCursor(10,30);
    display.println("Пила Обр");
    display.setTextColor(BLACK);
    //display.setCursor(0,40);
    //display.print("Частота=");
   // display.print(57);
    //display.print("Гц");
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=trianglM[d];
      pwmWrite(dds,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
    menuDDS++;
    delay(200);}
if(menuDDS==2){
    display.clearDisplay(); 
    display.setTextColor(BLACK); // 'inverted' text
    display.setCursor(10,0);
    display.println("Синус");
    display.setTextColor(BLACK);
    display.setCursor(10,10); 
    display.println("Треугольник");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(10,20);
    display.println("Пила");
    display.setTextColor(BLACK);
    display.setCursor(10,30);
    display.println("Пила Обр");
    display.setTextColor(BLACK);
    //display.setCursor(0,40);
    //display.print("Частота=");
   // display.print(57);
    //display.print("Гц");
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=pilaM[d];
      pwmWrite(dds,PWM);
     // delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
    delay(200);}
if(menuDDS==3){
    display.clearDisplay(); 
    display.setTextColor(BLACK); // 'inverted' text
    display.setCursor(10,0);
    display.println("Синус");
    display.setTextColor(BLACK);
    display.setCursor(10,10); 
    display.println("Треугольник");
    display.setTextColor(BLACK);
    display.setCursor(10,20);
    display.println("Пила");
    display.setTextColor(WHITE, BLACK);
    display.setCursor(10,30);
    display.println("Пила Обр");
    display.setTextColor(BLACK);
    //display.setCursor(0,40);
    //display.print("Частота=");
   // display.print(57);
   // display.print("Гц");
    delay(100);  
    display.display();
    while(D11_Read==LOW){
      PWM=RpilaM[d];
      pwmWrite(dds,PWM);
      //delayMicroseconds(fr);
      d++;
      if(d==32){d=0;}}
      menuDDS++;
    delay(200);}
if(menuDDS==4){menuDDS=0;}
 
}
/////////////////////DDS
/////////////////////TTL
void TTL(){
display.clearDisplay(); 
display.setTextColor(BLACK); 
display.setCursor(10,0);
display.println("Терминал");
display.setCursor(10,10);
display.println("Скорость");
display.setCursor(10,20);
display.print("-");
display.print(speedTTL);
display.println("+");
display.setCursor(0,30);
display.println("Нажми ОК-старт");
if(digitalRead(pravo)==HIGH){speedTTL=speedTTL+100;}
if(digitalRead(levo)==HIGH){speedTTL=speedTTL-100;}
if(speedTTL<0){speedTTL=250000;}
if(speedTTL>250000){speedTTL=0;}
if(digitalRead(ok)==HIGH){Serial.begin(speedTTL*(16/overclock));
      display.clearDisplay(); 
      delay(100);  
      display.display();
      int x=0;
      int y=0; 
      while(1){ 
            char incomingBytes;  
            if (Serial.available() > 0) { // Если в буфере есть данные
                incomingBytes=Serial.read(); // Считывание байта в переменную incomeByte
                display.setCursor(x,y);
                display.print(incomingBytes); // Печать строки в буффер дисплея
                display.display(); x=x+6;
                if(x==84){x=0;y=y+8;}
                if(y==48){x=0;y=0;
                  display.clearDisplay(); 
                  delay(100);  
                  display.display();}}         
      }} 
delay(100);  
display.display();  
}
/////////////////////TTL
[/code]
Может кто подправит экспорт бинарного файла
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Не обьявлен led в ХЗ какой строке

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DetSimen пишет:

Не обьявлен led в ХЗ какой строке

Но при этом испольуется в строках №№ ХЗ. ХЗ, ХЗ и ещё в строке №ХЗ

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Думаете он поймет что такое "строка ХЗ" и почему она ХЗ ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, если не поймёт, значит "не судьба" :(

luxer
Offline
Зарегистрирован: 23.03.2019

помоги,пожалуйста разобраться,проект повторен тысячи раз и никто не жаловался,а все выложенные Hexы я перепробывал заливать, они старой версии,вот  я и решил перевести в HEX единственный INO файл,но делаю впервые,с библиотеками разобрался,а тут эта ошибка,сам осцилографик неплохой,для простого незамысловатого использования вот сдесь строка ошибки https://ibb.co/s2B4VdB а вот ссылка проекта http://srukami.inf.ua/pultoscop_v25110.html

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы и впрямь не поняли, почему Вам все говорят про ошибки в строке № ХЗ?

Если не поняли, то, боюсь, что Вам лучше бросить это дело.

Я, например, вижу Вашу ошибку, на как прикажете сказать где она? Пальцем с начала скетча номер строки считать? Так мне влом! Или как?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Уважаемый ТС, прочитайте вот это и сделайте правильно. И Вам помогут!

luxer
Offline
Зарегистрирован: 23.03.2019

А что такое X3 это матерноое слово сокращенно или 3 с иксом строка и как исправить ошибку что-то дописать?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

luxer пишет:

А что такое X3 это матерноое слово сокращенно или 3 с иксом

https://ru.wiktionary.org/wiki/%D1%85%D0%B7

luxer
Offline
Зарегистрирован: 23.03.2019
001[code]
003#include <Adafruit_GFX.h>
004#include <Adafruit_PCD8544.h>
005#include <FreqCount.h>
006#include <PWM.h>
007#include <CyberLib.h>#define led  9   //пин для генератора сигналов (не менять)
008#define dds  10   //пин для генератора dds (не менять)
009//#################№№№№№№####пользовательские настройки
010#define power 8 //пин который опрашивает кнопку включения
011#define OFF 14//пин который управляет ключем питания
012#define  timepowerON 50 //время удержания кнопки выключения
013#define levo 13  //кнопка ЛЕВО(можно любой пин)
014#define ok 12    //кнопка ОК(можно любой пин)
015#define pravo 11 //кнопка ПРАВО(можно любой пин)
016#define akb A5 //любой своюодный аналоговый пин для измерения напряжения АКБ
017#define overclock 16  //Частота на которой работает Ардуино
018Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 4, 3, 2);//пины к которым у вас подключен дисплей        
019byte cont=52;//контрастность дисплея
020byte SinU=30;   //уровень синхронизации 0 до 255
021int PWM = 128;//стартовое значение ШИМ от 0 до 255       
022int32_t frequency = 500; //стартовое значение частоты в Гц
023float VCC=5.0;  //напряжение питания, меряем мультиметром
024//###########################################################
025int d=0;
026byte menuDDS=0;
027byte sinM[32]={1,6,15,29,48,69,92,117,143,168,191,212,229,243,251,255,254,248,237,222,203,181,156,131,106,81,59,39,22,10,3,1};
028byte pilaM[32]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145,153,161,169,177,185,193,201,209,217,225,235,245,255};
029byte RpilaM[32]={250,246,238,230,222,214,206,198,190,182,174,166,158,150,142,134,126,118,110,102,94,86,78,70,62,54,41,33,25,17,9,1};
030byte trianglM[32]={1,18,35,52,69,86,103,120,137,154,171,188,205,222,239,255,239,223,207,191,175,159,143,127,111,95,79,63,47,31,15,1};
031int powerON=0;//состояние кнопки питания
032byte hag=0;
033int mnog=0;
034boolean flag=0;
035byte mass[701];
036byte x=0;
037byte menu=0;//переменная выбора меню
038bool opornoe=1; //флаг опорного напряжения
039bool paus=0; //флаг режима паузы
040byte pultoskop=0; //флаг выбора генератора или осциллографа
041byte razv=6; 
042unsigned long count =0;
043byte sinX=30;
044byte meaX=83;
045int Vmax=0;// максимальное напряжение
046byte sinhMASS=0;
047long countX=0;
048long speedTTL=9600; //скорость терминала
049int prokr=0;
050void setup(){
051pinMode(A4,INPUT);
052digitalWrite(OFF,HIGH);//включем питание
053//Serial.begin(9600);
054display.begin();
055display.setContrast(cont); 
056while(digitalRead(ok)==LOW){ 
057/////////////////////////////////////////удержание кнопки отключения
058if(digitalRead(power)==HIGH){powerON++;delay(10);} 
059if(powerON>=timepowerON){digitalWrite(OFF,LOW);}///отключаем питание
060/////////////////////////////////////////удержание кнопки отключения
061  if(pultoskop==0){
062    display.clearDisplay();
063    display.setCursor(10,0);
064    display.setTextColor(WHITE, BLACK); // 'inverted' text
065    display.println("Пультоскоп");
066    display.setCursor(10,10);
067    display.setTextColor(BLACK);
068    display.println("Генератор");
069    display.setCursor(10,20);
070    display.println("DDSгенератор");
071    display.setCursor(10,30);
072    display.println("Терминал");
073    display.setCursor(0,40);
074    display.print("Батарея=");
075    display.print(analogRead(akb)*5.0/1024);
076    display.print("В");   
077  }
078    if(pultoskop==1){
079    display.clearDisplay();
080    display.setCursor(10,0);
081    display.setTextColor(BLACK); // 'inverted' text
082    display.println("Пультоскоп");
083    display.setCursor(10,10);
084    display.setTextColor(WHITE, BLACK); // 'inverted' text
085    display.println("Генератор");
086     display.setTextColor(BLACK); // 'inverted' text;
087    display.setCursor(10,20);
088    display.println("DDSгенератор");
089    display.setCursor(10,30);
090    display.println("Терминал");
091    display.setCursor(0,40);
092    display.setTextColor(BLACK);
093    display.print("Батарея=");
094    display.print(analogRead(akb)*5.0/1024);
095    display.print("В");  
096  }
097    if(pultoskop==2){
098    display.clearDisplay();
099    display.setCursor(10,00);
100    display.setTextColor(BLACK); // 'inverted' text
101    display.println("Пультоскоп");
102    display.setCursor(10,10);
103    display.println("Генератор");
104    display.setTextColor(WHITE, BLACK); // 'inverted' text;
105    display.setCursor(10,20);
106    display.println("DDSгенератор");
107    display.setTextColor(BLACK);
108    display.setCursor(10,30);
109    display.println("Терминал");
110    display.setCursor(0,40);
111    display.setTextColor(BLACK);
112    display.print("Батарея=");
113    display.print(analogRead(akb)*5.0/1024);
114    display.print("В");  
115    }
116        if(pultoskop==3){
117    display.clearDisplay();
118    display.setCursor(10,00);
119    display.setTextColor(BLACK); // 'inverted' text
120    display.println("Пультоскоп");
121    display.setCursor(10,10);
122    display.println("Генератор");
123    display.setTextColor(BLACK);
124    display.setCursor(10,20);
125    display.println("DDSгенератор");
126    display.setTextColor(WHITE, BLACK);
127    display.setCursor(10,30);
128    display.println("Терминал");
129    display.setCursor(0,40);
130    display.setTextColor(BLACK);
131    display.print("Батарея=");
132    display.print(analogRead(akb)*5.0/1024);
133    display.print("В");  
134    }
135if(digitalRead(levo)==HIGH){delay(300);pultoskop=pultoskop+1;}
136if(digitalRead(pravo)==HIGH){delay(300);pultoskop=pultoskop+1;}
137if(pultoskop>3){pultoskop=0;}
138delay(50); 
139display.display(); }
140if(pultoskop==2){InitTimersSafe(); bool success = SetPinFrequencySafe(led,200000);}
141if(pultoskop==0){FreqCount.begin(1000);}
142if(pultoskop==1){InitTimersSafe(); bool success = SetPinFrequencySafe(led, frequency);}
143display.setTextColor(BLACK);
144delay(500); }  
145void Zamer(){
146  if (razv>=6){ADCSRA = 0b11100010;}//delitel 4
147  if (razv==5){ADCSRA = 0b11100011;}//delitel 8
148  if (razv==4){ADCSRA = 0b11100100;}//delitel 16
149  if (razv==3){ADCSRA = 0b11100101;}//delitel 32
150  if (razv==2){ADCSRA = 0b11100110;}//delitel 64
151  if (razv<2){ADCSRA = 0b11100111;}//delitel 128
152  if (razv==0){
153      for(int i=0;i<700;i++){
154          while ((ADCSRA & 0x10)==0);
155          ADCSRA|=0x10;
156          delayMicroseconds(500);
157          mass[i]=ADCH;
158      }
159  }
160  if (razv>0){
161      for(int i=0;i<700;i++){
162          while ((ADCSRA & 0x10)==0);
163          ADCSRA|=0x10;
164          mass[i]=ADCH;
165      }
166  }
167   
168}
169void loop() {
170/////////////////////////////////////////удержание кнопки отключения
171if(digitalRead(power)==HIGH){powerON++;delay(10);} 
172if(powerON>=timepowerON){digitalWrite(OFF,LOW);}///отключаем питание
173/////////////////////////////////////////удержание кнопки отключения   
174if(pultoskop==0){ 
175if(opornoe==0){ADMUX = 0b11100011;}//выбор внутреннего опорного 1,1В
176if(opornoe==1){ADMUX = 0b01100011;}//Выбор внешнего опорного
177delay(5);
178if(paus==0){Zamer();}
179//#######################################определение точки синхронизации
180bool flagSINHRO=0;
181bool flagSINHRnull=0;
182for(int y=1;y<255;y++){
183  if(flagSINHRO==0){if(mass[y]<SinU){flagSINHRnull=1;}}
184  if(flagSINHRO==0){if(flagSINHRnull==1){if(mass[y]>SinU){flagSINHRO=1;sinhMASS=y;}}}}
185//#######################################определение точки синхронизации
186//максимальное значение сигнала##########################
187Vmax=0;
188for(int y=1;y<255;y++){if(Vmax<mass[y]){Vmax=mass[y];} }
189//максимальное значение сигнала##########################
190//#######################################определение точки синхронизации
191//#######################################отрисовка графика
192if(paus==0){
193display.clearDisplay();
194display.fillCircle(80,47-SinU/7, 2, BLACK);//рисуем уровень синхронизации   
195x=3;
196for(int y=sinhMASS;y<sinhMASS+80;y++){
197      if(razv<7){x++;}
198      if(razv==7){x=x+2;}
199      if(razv==8){x=x+3;}
200      display.drawLine(x, 47-mass[y]/7, x+1, 47-mass[y+1]/7, BLACK);
201      display.drawLine(x+1, 47-mass[y]/7+1, x+2, 47-mass[y+1]/7+1, BLACK);       
202}
203sinhMASS=0;}
204if(paus==1){
205display.clearDisplay();
206display.drawLine(prokr/8,8,prokr/8+6,8, BLACK);//шкала прокрутки
207display.drawLine(prokr/8,9,prokr/8+6,9, BLACK);//шкала прокрутки
208          x=3;
209          for(int y=prokr;y<prokr+80;y++){
210                if(razv<7){x++;}
211                if(razv==7){x=x+2;}
212                if(razv==8){x=x+3;}
213                display.drawLine(x, 47-mass[y]/7, x+1, 47-mass[y+1]/7, BLACK);
214                display.drawLine(x+1, 47-mass[y]/7+1, x+2, 47-mass[y+1]/7+1, BLACK);
215          }}
216//#######################################отрисовка графика
217for(byte i=47;i>5;i=i-7){display.drawPixel(0,i, BLACK);display.drawPixel(1,i, BLACK);display.drawPixel(2,i, BLACK);}//разметка экрана  вертикальная
218//////////////////////////////////////////////////сетка
219for(byte i=47;i>5;i=i-3){display.drawPixel(21,i, BLACK);display.drawPixel(42,i, BLACK);display.drawPixel(63,i, BLACK);}
220for(byte i=3;i<84;i=i+3){display.drawPixel(i,33, BLACK);display.drawPixel(i,19, BLACK);}
221//////////////////////////////////////////////////сетка
222//#######################################отрисовка menu
223if(menu==0){
224    display.setCursor(0,0);
225    display.setTextColor(WHITE,BLACK);
226    if(opornoe==0){display.print("1.1");}
227    if(opornoe==1){display.print(VCC,1);}
228    display.setTextColor(BLACK);
229    display.print(" ");
230    display.print(razv);
231    display.print(" P");
232    if(digitalRead(levo)==HIGH){opornoe=!opornoe;}
233    if(digitalRead(pravo)==HIGH){opornoe=!opornoe;}   
234}
235if(menu==1){
236    display.setCursor(0,0);
237    display.setTextColor( BLACK);
238    if(opornoe==0){display.print("1.1");}
239    if(opornoe==1){display.print(VCC,1);}
240    display.setTextColor(WHITE, BLACK); // 'inverted' text
241    display.print(" ");
242    display.print(razv);
243    display.setTextColor( BLACK); // 'inverted' text
244    display.print(" P");
245    if(digitalRead(levo)==HIGH){razv=razv-1;if(razv==255){razv=0;}}
246    if(digitalRead(pravo)==HIGH){razv=razv+1;if(razv==9){razv=8;}}
247}
248if(menu==2){
249    display.setCursor(0,0);
250    display.setTextColor( BLACK);
251    if(opornoe==0){display.print("1.1");}
252    if(opornoe==1){display.print(VCC,1);}
253    display.print(" ");
254    display.print(razv);
255    display.setTextColor(WHITE, BLACK); // 'inverted' text
256    display.print(" P");
257    paus=1;
258    if(digitalRead(levo)==HIGH){prokr=prokr-10;if(prokr<0){prokr=0;}}
259    if(digitalRead(pravo)==HIGH){prokr=prokr+10;if(prokr>620){prokr=620;}}   
260}
261if(menu==3){
262    prokr=0;
263    paus=0;
264    display.setCursor(0,0);
265    display.setTextColor( BLACK);
266    if(opornoe==0){display.print("1.1");}
267    if(opornoe==1){display.print(VCC,1);}
268    display.print(" ");
269    display.print(razv);
270    display.setTextColor(BLACK);
271    display.print(" P");
272    if(digitalRead(levo)==HIGH){SinU=SinU-20;if(SinU<20){SinU=20;}}
273    if(digitalRead(pravo)==HIGH){SinU=SinU+20;if(SinU>230){SinU=230;}}  
274    display.fillCircle(80,47-SinU/7, 5, BLACK);
275    display.fillCircle(80,47-SinU/7, 2, WHITE);
276}
277if(digitalRead(ok)==HIGH){menu++;if(menu==4){menu=0;paus=0;}}//перебор меню
278if (FreqCount.available()) { count = FreqCount.read();}//вывод частоты по готовности счетчика
279//#######################################частоты сигнала
280byte Frec1=0;
281long Frec=0;
282bool flagFrec1=0;
283bool flagFrec2=0;
284bool flagFrec3=0;
285for(int y=1;y<255;y++){
286  if(flagFrec1==0){if(mass[y]<SinU){flagFrec2=1;}}
287  if(flagFrec1==0){if(flagFrec2==1){if(mass[y]>SinU){flagFrec1=1;Frec1=y;}}}
288  if(flagFrec1==1){if(mass[y]<SinU){flagFrec3=1;}}
289  if(flagFrec3==1){if(mass[y]>SinU){
290  if (razv>=6){Frec=1000000/((y-Frec1-1)*3.27);}//delitel 4
291  if (razv==5){Frec=1000000/((y-Frec1)*3.27)/2;}//delitel 8
292  if (razv==4){Frec=1000000/((y-Frec1)*3.27)/4;}//delitel 16
293  if (razv==3){Frec=1000000/((y-Frec1)*3.27)/8;}//delitel 32
294  if (razv==2){Frec=1000000/((y-Frec1)*3.27)/16;}//delitel 64
295  if (razv==2){Frec=1000000/((y-Frec1)*3.27)/32;}//delitel 128
296  if (razv==1){Frec=1000000/((y-Frec1)*3.27)/32;}//delitel 128
297  if (razv==0){Frec=1000000/((y-Frec1)*500);}//delitel 128
298  flagFrec1=0;flagFrec3=0;}}}
299//#######################################частоты сигнала
300display.setTextColor( BLACK);
301if(opornoe==1){
302if((Vmax*VCC/255)>2.5){countX=count*(overclock/16.0);}
303if((Vmax*VCC/255)<2.5){countX=Frec*(overclock/16.0);}}
304if(opornoe==0){countX=Frec*(overclock/16.0);}
305if(countX<1000){display.print(" ");display.print(countX);display.print("Hz");}
306if(countX>1000){float countXK=countX/1000.0;display.print(countXK,1);display.print("KHz");}
307if(opornoe==1){display.setCursor(0,40);display.setTextColor(BLACK);
308display.print(Vmax*VCC/255,1);}
309if(opornoe==0){display.setCursor(0,40);display.setTextColor(BLACK);
310display.print(Vmax*1.1/255,1);}
311display.print("V");
312//#######################################отрисовка menu
313delay(200); 
314display.display();
315}
316if(pultoskop==1){Generator();}
317if(pultoskop==2){DDSGenerator();}
318if(pultoskop==3){TTL();}
319}
320//#######################################режим ренератора
321void Generator(){
322display.clearDisplay(); 
323if (flag==0){//флаг выборов режима настройки ШИМ или Частоты
324            if(digitalRead(levo)==HIGH){
325              frequency=frequency-mnog;
326              if(frequency<0){frequency=0;}
327              bool success = SetPinFrequencySafe(led, frequency);
328              delay(3);//защита от дребезга
329            }
330            if(digitalRead(pravo)==HIGH){
331              frequency=frequency+mnog;
332              bool success = SetPinFrequencySafe(led, frequency);
333              delay(3);//защита от дребезга
334            
335}
336if (flag==1){//флаг выборов режима настройки ШИМ или Частоты
337            if(digitalRead(levo)==HIGH){
338              PWM=PWM-1;
339              if(PWM<0){PWM=255;}
340              delay(3);//защита от дребезга
341             
342            }
343            if(digitalRead(pravo)==HIGH){
344              PWM=PWM+1;
345              if(PWM>255){PWM=0;}
346              delay(3);//защита от дребезга
347            
348}     
349if(digitalRead(ok)==HIGH){//переключение разряда выбора частоты
350  delay(3);//защита от дребезга
351  hag++;
352  if(hag>=5){hag=0;}
353}
354////////////
355display.setTextSize(1);
356display.setCursor(0,5);
357display.print("PWM=");
358display.print(PWM*100.0/255);
359display.print(" %");
360display.drawLine(0,0,83*PWM/255.0,0, BLACK);
361display.drawLine(0,1,83*PWM/255.0,1, BLACK);
362display.drawLine(0,2,83*PWM/255.0,2, BLACK);
363display.drawLine(0,15,83*PWM/255.0,15, BLACK);
364display.drawLine(0,16,83*PWM/255.0,16, BLACK);
365display.drawLine(0,17,83*PWM/255.0,17, BLACK);
366///////////   
367display.setCursor(5,20);
368 display.setTextSize(2);
369long frequencyX=frequency*(overclock/16.0);
370if(frequencyX<1000){display.print(frequencyX);display.setTextSize(1);display.println("Hz");}
371if(frequencyX>1000){if(frequencyX<10000){display.print((frequencyX/1000.0),2);display.setTextSize(1);display.println("KHz");}}
372if(frequencyX>=10000){if(frequencyX<100000){display.print((frequencyX/1000.0),1);display.setTextSize(1);display.println("KHz");}}
373if(frequencyX>=100000){display.print((frequencyX/1000.0),0);display.setTextSize(1);display.println("KHz");}
374display.setCursor(0,40);
375display.setTextSize(1);
376display.print(">>X ");   
377      if(hag==0){//выбор множителя частоты
378         
379          display.print(1*(overclock/16.0),1);
380          mnog=1;
381          flag=0;
382      }
383      if(hag==1){//выбор множителя частоты
384          display.print(10*(overclock/16.0),0);
385          mnog=10;
386      }
387      if(hag==2){//выбор множителя частоты
388          display.print(100*(overclock/16.0),0);
389          mnog=100;
390      }
391      if(hag==3){//выбор множителя частоты
392          display.print(1000*(overclock/16.0),0);
393          mnog=1000;
394      }
395      if(hag==4){//выбор  PWM
396          display.print("PWM ");
397          display.print(PWM*100.0/255);
398          display.print("%");
399          flag=1;
400      }
401display.print("<<");       
402pwmWrite(led, PWM);
403delay(300); 
404display.display();
405}
406/////////////////////DDS
407void DDSGenerator(){
408int fr=10;
409if(menuDDS==0){
410    display.clearDisplay();
411    display.setTextColor(WHITE, BLACK); // 'inverted' text
412    display.setCursor(10,0);
413    display.println("Синус");
414    display.setTextColor(BLACK);
415    display.setCursor(10,10);
416    display.println("Треугольник");
417    display.setCursor(10,20);
418    display.println("Пила");
419    display.setCursor(10,30);
420    display.println("Пила Обр");
421    display.setTextColor(BLACK);
422    display.setCursor(0,40);
423    //display.print("Частота=");
424    //display.print(57);
425    //display.print("Гц");
426    delay(100); 
427    display.display();
428    while(D11_Read==LOW){
429      PWM=sinM[d];
430      pwmWrite(dds,PWM);
431      //delayMicroseconds(fr);
432      d++;
433      if(d==32){d=0;}}
434    menuDDS++;
435    delay(200);}
436if(menuDDS==1){
437    display.clearDisplay();
438    display.setTextColor(BLACK); // 'inverted' text
439    display.setCursor(10,0);
440    display.println("Синус");
441    display.setTextColor(WHITE, BLACK);
442    display.setCursor(10,10);
443    display.println("Треугольник");
444    display.setTextColor(BLACK);
445    display.setCursor(10,20);
446    display.println("Пила");
447    display.setCursor(10,30);
448    display.println("Пила Обр");
449    display.setTextColor(BLACK);
450    //display.setCursor(0,40);
451    //display.print("Частота=");
452   // display.print(57);
453    //display.print("Гц");
454    delay(100); 
455    display.display();
456    while(D11_Read==LOW){
457      PWM=trianglM[d];
458      pwmWrite(dds,PWM);
459      //delayMicroseconds(fr);
460      d++;
461      if(d==32){d=0;}}
462    menuDDS++;
463    delay(200);}
464if(menuDDS==2){
465    display.clearDisplay();
466    display.setTextColor(BLACK); // 'inverted' text
467    display.setCursor(10,0);
468    display.println("Синус");
469    display.setTextColor(BLACK);
470    display.setCursor(10,10);
471    display.println("Треугольник");
472    display.setTextColor(WHITE, BLACK);
473    display.setCursor(10,20);
474    display.println("Пила");
475    display.setTextColor(BLACK);
476    display.setCursor(10,30);
477    display.println("Пила Обр");
478    display.setTextColor(BLACK);
479    //display.setCursor(0,40);
480    //display.print("Частота=");
481   // display.print(57);
482    //display.print("Гц");
483    delay(100); 
484    display.display();
485    while(D11_Read==LOW){
486      PWM=pilaM[d];
487      pwmWrite(dds,PWM);
488     // delayMicroseconds(fr);
489      d++;
490      if(d==32){d=0;}}
491      menuDDS++;
492    delay(200);}
493if(menuDDS==3){
494    display.clearDisplay();
495    display.setTextColor(BLACK); // 'inverted' text
496    display.setCursor(10,0);
497    display.println("Синус");
498    display.setTextColor(BLACK);
499    display.setCursor(10,10);
500    display.println("Треугольник");
501    display.setTextColor(BLACK);
502    display.setCursor(10,20);
503    display.println("Пила");
504    display.setTextColor(WHITE, BLACK);
505    display.setCursor(10,30);
506    display.println("Пила Обр");
507    display.setTextColor(BLACK);
508    //display.setCursor(0,40);
509    //display.print("Частота=");
510   // display.print(57);
511   // display.print("Гц");
512    delay(100); 
513    display.display();
514    while(D11_Read==LOW){
515      PWM=RpilaM[d];
516      pwmWrite(dds,PWM);
517      //delayMicroseconds(fr);
518      d++;
519      if(d==32){d=0;}}
520      menuDDS++;
521    delay(200);}
522if(menuDDS==4){menuDDS=0;}
523 
524}
525/////////////////////DDS
526/////////////////////TTL
527void TTL(){
528display.clearDisplay();
529display.setTextColor(BLACK);
530display.setCursor(10,0);
531display.println("Терминал");
532display.setCursor(10,10);
533display.println("Скорость");
534display.setCursor(10,20);
535display.print("-");
536display.print(speedTTL);
537display.println("+");
538display.setCursor(0,30);
539display.println("Нажми ОК-старт");
540if(digitalRead(pravo)==HIGH){speedTTL=speedTTL+100;}
541if(digitalRead(levo)==HIGH){speedTTL=speedTTL-100;}
542if(speedTTL<0){speedTTL=250000;}
543if(speedTTL>250000){speedTTL=0;}
544if(digitalRead(ok)==HIGH){Serial.begin(speedTTL*(16/overclock));
545      display.clearDisplay();
546      delay(100); 
547      display.display();
548      int x=0;
549      int y=0;
550      while(1){
551            char incomingBytes; 
552            if (Serial.available() > 0) { // Если в буфере есть данные
553                incomingBytes=Serial.read(); // Считывание байта в переменную incomeByte
554                display.setCursor(x,y);
555                display.print(incomingBytes); // Печать строки в буффер дисплея
556                display.display(); x=x+6;
557                if(x==84){x=0;y=y+8;}
558                if(y==48){x=0;y=0;
559                  display.clearDisplay();
560                  delay(100); 
561                  display.display();}}        
562      }}
563delay(100); 
564display.display(); 
565}
566/////////////////////TTL
567[/code]

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

luxer пишет:

А что такое X3 это матерноое слово сокращенно или 3 с иксом строка и как исправить ошибку что-то дописать?

Ну, что Вы, у нас здесь культурные люди собрались. И аббревеатура "ХЗ" переводится как Харитон Знает. А ссылочку почитайте - очень способствует против Харитонов.

luxer
Offline
Зарегистрирован: 23.03.2019

Я поражаюсь как люди эти коды пишут,ведь такой написать код и всё прошла весна и девушки снова замужем

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

В 7 строке после include <CyberLib.h> нажмите энтер. #define led  9 должно быть в новой строке.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да разделите ж Вы, наконец, 7-ую строку на две! Первая кончается символом >, а вторая начинается символом #

luxer
Offline
Зарегистрирован: 23.03.2019

Друзья спасибо всем,вы конечно молодцы раз такое знаете,прошу извинить,если где-то глупости сморозил,просто у меня образования другие,9 лет другого профиля в университетах,так что постигать ущё такой объём детально не смогу,и последнее... В конце компиляции написано---недостаточно памяти,программа может работать нестабильно

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Ну что же - надо поменять контроллер на контроллер, с большим объемом памяти. В крайнем случае использовать STM32 - но я этого не говорил...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

luxer пишет:

и последнее... 

Это далеко не последнее. Вам бы поучиться программмировать на более простыхпримерах, прежде, чем за такиебольшие браться.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

luxer пишет:

и последнее... 

Это далеко не последнее. Вам бы поучиться программмировать на более простыхпримерах, прежде, чем за такиебольшие браться.

тут пару лет на форуме но более 100 строк не замахиваюсь )))
Евгений Петрович, может подскажите, что, по коду радиоуправляемой тележки, очень плохо управляется, знаю с внуком Вы танк одолели, здесь аналогичное управление, 4-ре мотора по паре на левый и правый борта, драйвер L298N

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em пишет:
драйвер L298N
Да, нет, там тоже тележка была. Свой мотор на каждом колесе. Драйверы были TA7291P. Танк был раньше и он тривиальным был. Ставить на него реальную пушку, чтобы могла при случае всё разнести (на основе осиного патрона) я запретил :)

А сейчас на том же принципе делаем тележку чтобы самому вместе с сестрой кататься. Чётыре мотора по 360 ватт (10Ах36В), всё по-взрослому. Железную платформу прошлым летом сделали, я тут где-то фото выкладывал, думаю к лету электронику закончим.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

luxer пишет:

А что такое X3 это матерноое слово сокращенно или 3 с иксом строка и как исправить ошибку что-то дописать?

И это спрашивает  ... у которого xer в нике!!!!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

ua6em пишет:
драйвер L298N
Да, нет, там тоже тележка была. Свой мотор на каждом колесе. Драйверы были TA7291P. Танк был раньше и он тривиальным был. Ставить на него реальную пушку, чтобы могла при случае всё разнести (на основе осиного патрона) я запретил :)

А сейчас на том же принципе делаем тележку чтобы самому вместе с сестрой кататься. Чётыре мотора по 360 ватт (10Ах36В), всё по-взрослому. Железную платформу прошлым летом сделали, я тут где-то фото выкладывал, думаю к лету электронику закончим.

а управление поворотом? танковое или классика?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Танковое. Там у всех 4-х колёс независимая подвеска, но никаких поворотных мехнизмов не предусмотрено.