Hello everybody. i hope that you help me, because im very sad, i can't solve a problem with my project....
Simply i try describe my code:
.
.
.
.
.
//other code
do{
buttonStateMENU=digitalRead(buttonMENU); //read buttons
buttonStateLEFT=digitalRead(buttonLEFT);
buttonStateRIGHT=digitalRead(buttonRIGHT);
if(PredStavRight!=buttonStateRIGHT&&PredStavLeft!=buttonStateLEFT) { //doladit aby bol po kratkom stlaceni stale 1 nie az ked sa tlacitko druhe stlaci
l=0;
}
if( buttonStateRIGHT==HIGH){
ZadajHodnotuPrava(1);
}
if( buttonStateLEFT==HIGH){
ZadajHodnotuLava(1);
}
Serial.println((float)frekvencia_min/100,2);
delay(100);
}
while (buttonStateMENU==LOW);
This first part of code working while Button menu is low. ZadajHodnotuLava(1) and ZadajHodnotuPrava(1) are functions to set frequency. This frequency is send by serial.println....
.
.
.
.
.
.
.
.
//other code
do{
buttonStateMENU=digitalRead(buttonMENU);
buttonStateRIGHT=digitalRead(buttonRIGHT);
buttonStateLEFT=digitalRead(buttonLEFT);
if (buttonStateRIGHT==HIGH){
i++;
}
if (i>4){
i=0;
}
if (buttonStateLEFT==HIGH){
i--;
}
j=TX_ACOMP_RELEASE_TIME_LOWBYTE_VALUE[i];
if (i<0){
i=4;
}
Serial.println(i);
delay(100);
***************************************************************************************
/* if(i==0) {
lcd.setCursor(0,0);
lcd.print("100 ms");
//Serial.println("100 ms");
//delay(100);
}
if(i==1) {
lcd.setCursor(0,0);
lcd.print("200 ms");
//Serial.println("200 ms");
//delay(100);
}*/
/* if(i==2) {
lcd.setCursor(0,0);
lcd.print("350 ms");
//delay(100);
}*/
/* if(i==3) {
lcd.setCursor(0,0);
lcd.print("525 ms");
//delay(100);
}*//*
if(i==4) {
lcd.setCursor(0,0);
lcd.print("600 ms");
//delay(100);
}*/
******************************************************************************
}
while (buttonStateMENU==LOW);
.
.
.
//next code
.
.
.
.
In next part when is press button left or right is incremented or decremented of value i. According this valus is chose value from array.
The most important part is code between two lines *****. When this code is between /.../ the first part running OK, in serial monitor i see values of frequency until i press enter button.
when I delete /.../ the code not working properly. In serial monitor, sent values of frequency are show and program stopw and program not respond....I'm desperate, i dont know what i do... PLEASE HELP ME...
P.S. sorry for my english and thank you for your help.
here is function ZadajHodnotuPrava...
int ZadajHodnotuPrava (int func){
l++;
PredStavRight = HIGH;
if(frekvencia_min>=frekvencia_max){
frekvencia_min=frekvenciaMIN;
//lcd.clear();
//lcd.setCursor(0,0);
//lcd.print ("nulujem");
//return minimum1;
l=0;
}
if(vykon_min>=vykon_max){
vykon_min=vykonMIN;
// Serial.println ("nulujem");
//return minimum1;
l=0;
}
if(minimum>=pilot_freq_max){
minimum=minimumdef1;
// Serial.println ("nulujem");
//return minimum1;
l=0;
}
if(deviations_min>=deviations_max){
deviations_min=deviations_min_def;
// Serial.println ("nulujem");
//return minimum1;
l=0;
}
if (l>5&l<15){
switch(func){
case 1:
frekvencia_min=frekvencia_min+100;
// hodnota=minimum1;
// Serial.println(minimum1);
// Serial.println("100");
return frekvencia_min;
break;
case 2:
vykon_min=vykon_min+2;
return vykon_min;
break;
//TX_PILOT_FREQUENCY
case 3:
minimum=minimum+500;
return minimum;
break;
//deviation
case 4:
deviations_min=deviations_min+500;
return deviations_min;
break;
}
//Serial.println(minimum);
}
if (l>=15){
switch(func){
case 1:
frekvencia_min=frekvencia_min+500;
// Serial.println("500");
return frekvencia_min;
break;
case 2:
vykon_min=vykon_min+5;
return vykon_min;
break;
case 3:
minimum=minimum+1000;
return minimum;
break;
case 4:
deviations_min=deviations_min+1000;
return deviations_min;
break;
//Serial.println(minimum);
}
//minimum=minimum+1000;
//Serial.println(minimum);
}
else{
switch(func){
//nastavenie frekvencie
case 1:
frekvencia_min=frekvencia_min+50;
// hodnota=minimum1;
// Serial.println(minimum1);
return frekvencia_min;
break;
//nastavenie vykonu
case 2:
vykon_min++;
return vykon_min;
break;
case 3:
//nastavenie tx_pilot freq
minimum=minimum++;
return minimum;
break;
case 4:
deviations_min=deviations_min+10;
return deviations_min;
break;
//Serial.println(minimum);
}
//minimum++;
// Serial.println(minimum)
}
delay(100) ;
//return minimum;
//}
}