redeclared as different kind of symbol ошибка при компиляции

krokodi1
Offline
Зарегистрирован: 06.10.2019

//возможно нужно было кидать в раздел для новичков

написал код с массивом в котором храню текст , а текст хранится только в String  и еще вроде в char , поэтому поставил тип массива String , но при компиляции выдает - redeclared as different kind of symbol , закинул в переводчик - переоформленный как другой вид символа , насколько я понял он не считает мой текст за  String , хочется в ответе конкретного что не так  и как исправить. спасибо.

#include <iarduino_OLED.h>    // Подключаем библиотеку iarduino_OLED.
iarduino_OLED myOLED(0x3C);   // адрес для работы с дисплеем по I2c
#define CLK 2 //пин энкодера
#define DT 3//пин энкодера
#define SW 4//пин энкодера
#include "GyverEncoder.h" //энкодер
Encoder enc(CLK, DT, SW);//подключаем энкодер
String menu []= {"добавить канал","удалить канал","удалить все каналы","инф. канала"};
byte oldP=1;
byte nowP=0;
extern uint8_t SmallFontRus[];        

void setup() {
  // put your setup code here, to run once:
  myOLED.begin();  //  инициализация работы с дисплеем
Serial.begin(9600);
  attachInterrupt(0, isrCLK, CHANGE);    // прерывание на 2 пине! CLK у энка
  attachInterrupt(1, isrDT, CHANGE);   // прерывание на 3 пине! DT у энка
  myOLED.setFont(SmallFontRus);   
   myOLED.setCoding(TXT_UTF8);   
}
void isrCLK() {
  enc1.tick();  // отработка в прерывании
}
void isrDT() {
  enc1.tick();  // отработка в прерывании
}


void loop() {
  // put your main code here, to run repeatedly:
   myOLED.print("loop"], OLED_C, 31);  
 while (1){
if (enc.isHolded()==1){
   myOLED.clrScr();    
  menu ();
}
 }
}

void menu () {
  if (oldP>nowP){
    myOLED.invText();  
    myOLED.print(menu [nowP], OLED_C, 31);   
   
  }
  else {
    myOLED.invText(false);     
  myOLED.print(menu [oldP], OLED_C, 31); 
  }
// 2 строчка
    if (oldP<nowP){
    myOLED.invText();  
    myOLED.print(menu [nowP], OLED_C, 31);  
     myOLED.invText(false);   
  }
  else {
    myOLED.invText(false);     
  myOLED.print(menu [oldP], OLED_C, 47); 
  }
  for (byte i=0 ;i<255;i++){
    delay (6);
    if (isRight()==1){
oldP=nowP;
nowP++;
if (nowP>menu.count){
  nowP=0
    }
    }
        if (isLeft()==1){
oldP=nowP;
if (nowP==0){
  nowP=menu.count;
    }
    else{
nowP=nowP-1;
    }

        }  
           if (isHolded()==1){
             myOLED.clrScr();
     loop() ;
   }
   
}
}
loop() ;
}

 

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

строка 41

b707
Offline
Зарегистрирован: 26.05.2017

у вас массив в строке 8 и процедура в строке 41 обе называются menu.

переименуйте что-нить

krokodi1
Offline
Зарегистрирован: 06.10.2019

мда, тупанул.спасибо!