Что не так с кодом с++ ардуино? Написан по книге "Эвольвектор" учебное пособие на ардуино уровня №2 часть 3
#define buzer A0
#define button1 A1
#define button2 A2
int myPins[7] ={6,7,8,9,10,12,13};
int DigPin[4]=
{2,3,4,5};
int Dot=11;
boolean Num[10][7]=
{{1,1,1,0,1,1,1},//0
{0,0,1,0,1,0,0},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,0},
{0,1,1,1,1,0,0},
{1,1,0,1,1,1,0},
{1,1,0,1,1,1,1},
{1,0,1,0,1,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,1,1,0}};
int razryad[4];
int i,j,sbros=1,val,state=0;
double number,time;
//boolean state=0,val;
void setup() {
for (i=0; i < 7; ++i) {
pinMode(myPins[i], OUTPUT);}
for (i=0; i < 4; ++i) {
pinMode(DigPin[i], OUTPUT);//}pinMode(SegPin[i], OUTPUT);}
pinMode(buzer, OUTPUT);//pinMode(Dot, OUTPUT);
}
}
void loop() {
val=digitalRead(button1);
if (val==HIGH);{
delay(200);//delay(300);
tone (buzer,3000,200);
state = 1-state;
if(sbros==1){
sbros=0;
time = millis();}}
while(state==1){
number=(millis()-time)/1000.0;
indikator(number,1);
val=digitalRead(button1);
if(val==HIGH){
state = 1-state;
delay(300);tone(buzer,3000,200);}}
indikator(number, 1);
val=digitalRead(button2);
if (val==HIGH){
sbros=1;
number= 0.0;
tone(buzer,1000,200);}}
void indikator(double chislo, int Razr);{
chislo = chislo*pow(10,Razr);
if (chislo>=10000){chislo=9999;}
Razryad[3] = chislo/1000;
Razryad[2] = chislo-Razryad[3]*1000)/100;
Razryad [1]=(chislo-Razryad[3]*1000-Razryad[2]*100)/10;
Razryad[0]=(chislo-Razryad[3]*1000-Razryad[2]*100 - Razryad[1]*10);
for(j=0; j<4;j++){
if (Razr==j){
digitalWrite(Dot,HIGH);}
for(i=0; i<7;i++){
digitalWrite(SegPin[i],Num[Razryad[j]][i]);}
digitalWrite(DigPin[j],HIGH);
delay(1);
digitalWrite(DigPin[j],LOW);
digitalWrite(Dot,LOW);}}
Ответы (1 шт):
Автор решения: Rashing
→ Ссылка
В строчке:
void indikator(double chislo, int Razr);{
надо убрать ; Должно получится:
void indikator(double chislo, int Razr){