ошибки где их быть не должно
- Войдите на сайт для отправки комментариев
Пнд, 14/07/2014 - 11:07
Написал программу, вроде ошибок не должно быть, но когда компелирую то я получаю 2 ошибки, которых вроде как быть не должно.
вот код
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int buttonPinLeft = 13; // Up button
const int buttonPinRight = 8; // Down button
const int buttonPinEsc = 7; // Esc button
const int buttonPinEnter = 6; // Enter button
int uwPinPWM = 10;
int uaPinPWM = 9;
int lastButtonPushed = 0;
int lastButtonEnterState = LOW;
int lastButtonEscState = LOW;
int lastButtonLeftState = LOW;
int lastButtonRightState = LOW;
long lastEnterDebounceTime = 0;
long lastEscDebounceTime = 0;
long lastLeftDebounceTime = 0;
long lastRightDebounceTime = 0;
long debounceDelay = 150;
int A ;
int reading;
int toleranz;
int schaltzeit;
int gang;
#define MAXSIZE 21
typedef struct gang_s
{
unsigned int gUw;
unsigned int gUa;
int pwmua;
} gang_s;
gang_s jetzt;
gang_s solljetzt;
gang_s erster[MAXSIZE] = {{2125,2500,128},{2125,2575,132},{2125,2650,136},{2125,2725,140},{2125,2800,144},{2125,2875,148},{2125,2950,152},{2125,3025,156},{2125,3100,160},{2125,3175,164},{2125,3250,168},{2125,3325,172},{2125,3400,176},{2125,3475,180},{2125,3550,184},{2125,3625,188},{2125,3700,192},{2125,3775,196},{2125,3850,200},{2125,3925,202},{2125,4000,204}};
gang_s zweiter[MAXSIZE] = {{2125,2500,128},{2125,2425,124},{2125,2350,120},{2125,2275,116},{2125,2200,112},{2125,2125,108},{2125,2050,104},{2125,1975,100},{2125,1900,96},{2125,1825,92},{2125,1750,88},{2125,1675,84},{2125,1600,80},{2125,1525,76},{2125,1450,72},{2125,1375,68},{2125,1300,64},{2125,1225,60},{2125,1150,56},{2125,1075,52},{2125,1000,51}};
gang_s neutral = {2125,2500};
void setup() {
pinMode(buttonPinLeft, INPUT);
pinMode(buttonPinRight, INPUT);
pinMode(buttonPinEnter, INPUT);
pinMode(buttonPinEsc, INPUT);
pinMode(uwPinPWM, OUTPUT);
pinMode(uaPinPWM, OUTPUT);
lcd.begin(16, 4);
lcd.clear();
A = 0;
gang = 0;
gang_s jetzt = { 2125,2500,128 };
analogWrite(uwPinPWM, 108);
analogWrite(uaPinPWM, jetzt.pwmua);
toleranz=1;
schaltzeit = 100;
}
void loop() {
switch(A){
case 0:
lcd.setCursor(0, 0);
lcd.print(jetzt.gUw);
lcd.setCursor(0,1);
lcd.print(jetzt.gUa);
lcd.setCursor(0,2);
if ((jetzt.gUw=2125) && (jetzt.gUa>=3000)) {
lcd.print("Gang: 1");
}
else if((jetzt.gUw=2125) && (jetzt.gUa<=2000)) {
lcd.print("Gang: 2");
}
else{
lcd.print("Gang: N");
}
break;
case 10:
lcd.setCursor(0, 0);
lcd.print("> T: Ideal");
lcd.setCursor(0,1);
lcd.print(" T: +5%");
lcd.setCursor(0,2);
lcd.print(" T: -5%");
lcd.setCursor(0,3);
lcd.print(" T: +10%");
break;
case 20:
lcd.setCursor(0,0);
lcd.print(" T: Ideal");
lcd.setCursor(0,1);
lcd.print("> T: +5%");
lcd.setCursor(0,2);
lcd.print(" T: -5%");
lcd.setCursor(0,3);
lcd.print(" T: +10%");
break;
case 30:
lcd.setCursor(0,0);
lcd.print(" T: Ideal");
lcd.setCursor(0,1);
lcd.print(" T: +5%");
lcd.setCursor(0,2);
lcd.print("> T: -5%");
lcd.setCursor(0,3);
lcd.print(" T: +10%");
break;
case 40:
lcd.setCursor(0,0);
lcd.print(" T: +5%");
lcd.setCursor(0,1);
lcd.print(" T: -5%");
lcd.setCursor(0,2);
lcd.print("> T: +10%");
lcd.setCursor(0,3);
lcd.print(" T: -10%");
break;
case 50:
lcd.setCursor(0,0);
lcd.print(" T: +5%");
lcd.setCursor(0,1);
lcd.print(" T: -5%");
lcd.setCursor(0,2);
lcd.print(" T: +10%");
lcd.setCursor(0,3);
lcd.print("> T: -10%");
break;
case 11:
lcd.setCursor(0, 0);
lcd.print("> auf 1.Gang");
lcd.setCursor(0,1);
lcd.print(" auf 2.Gang");
lcd.setCursor(0,2);
case 12:
lcd.setCursor(0,0);
lcd.print(" auf 1.Gang");
lcd.setCursor(0,1);
lcd.print("> auf 2.Gang");
lcd.setCursor(0,2);
break;
case 110:
lcd.setCursor(0,0);
lcd.print(" Schaltzeit:");
lcd.setCursor(0,1);
lcd.print(schaltzeit);
lcd.setCursor(0,2);
break;
default:
lcd.setCursor(0,0);
lcd.print("Glückwunsch!");
lcd.setCursor(0,1);
lcd.print("Du hast das Pro-");
lcd.setCursor(0,2);
lcd.print("gramm kaputt");
lcd.setCursor(0,3);
lcd.print("gemacht! :-D");
break;
}
int buttonEnterState=LOW;
int buttonEscState=LOW;
int buttonLeftState=LOW;
int buttonRightState=LOW;
reading = digitalRead(buttonPinEnter);
if (reading != lastButtonEnterState) {
lastEnterDebounceTime = millis();
}
if ((millis() - lastEnterDebounceTime) > debounceDelay) {
buttonEnterState=reading;
lastEnterDebounceTime=millis();
}
lastButtonEnterState = reading;
reading = digitalRead(buttonPinEsc);
if (reading != lastButtonEscState) {
lastEscDebounceTime = millis();
}
if ((millis() - lastEscDebounceTime) > debounceDelay) {
buttonEscState = reading;
lastEscDebounceTime=millis();
}
lastButtonEscState = reading;
reading = digitalRead(buttonPinRight);
if (reading != lastButtonRightState) {
lastRightDebounceTime = millis();
}
if ((millis() - lastRightDebounceTime) > debounceDelay) {
buttonRightState = reading;
lastRightDebounceTime =millis();
}
lastButtonRightState = reading;
reading = digitalRead(buttonPinLeft);
if (reading != lastButtonLeftState) {
lastLeftDebounceTime = millis();
}
if ((millis() - lastLeftDebounceTime) > debounceDelay) {
buttonLeftState = reading;
lastLeftDebounceTime=millis();
}
lastButtonLeftState = reading;
if (buttonEnterState==HIGH){
lastButtonPushed=buttonPinEnter;
}
else if(buttonEscState==HIGH){
lastButtonPushed=buttonPinEsc;
}
else if(buttonRightState==HIGH){
lastButtonPushed=buttonPinRight;
}
else if(buttonLeftState==HIGH){
lastButtonPushed=buttonPinLeft;
}
else{
lastButtonPushed=0;
}
////////////////////////////// Taster ///////////////////////////////////
//menu key down
if (buttonRightState==HIGH ) {
if((A == 10) || (A == 20) || (A == 30)|| (A == 40)) {
A = A + 10;
}
else if(A == 11) {
A = A + 1;
}
else if(A == 110){
schaltzeit = schaltzeit + 100;
}
}
//menu key up
if (buttonLeftState==HIGH) {
if((A == 20) || (A == 30) || (A == 40)|| (A == 50)) {
A = A - 10;
}
else if((A == 12)) {
A = A - 1;
}
else if( A == 110 ){
schaltzeit = schaltzeit - 100;
}
}
//menu key ok
if (buttonEnterState==HIGH) {
switch(A){
case 10:
toleranz=1;
A=11;
break;
case 20:
toleranz= 5;
A=11;
break;
case 30:
toleranz= -5;
A=11;
break;
case 40:
toleranz=10;
A=11;
break;
case 50:
toleranz=-10;
A=11;
break;
case 11:
gang = 1;
A=110;
break;
case 12:
gang = 2;
A=110;
break;
case 110:
switch(gang){
case 1:
jetzt = umschaltfkt(zweiter, neutral, erster, schaltzeit, toleranz);
break;
case 2:
jetzt = umschaltfkt(erster, neutral, zweiter, schaltzeit, toleranz);
break;
default:
break;
}
A==0;
break;
default:
A=10;
break;
}
}
//menu key ESC
if ( buttonEscState==HIGH) {
if((A == 11) || (A == 12)) {
A = 10;
}
else if(A > 100) {
A = 11;
}
else if((A == 20) || (A == 30) || (A == 40) || (A == 50)) {
A = 10;
}
else if(A == 110) {
A = 11;
}
}
if ((buttonLeftState==HIGH) && (buttonRightState==HIGH)) {
A=10;
}
}
gang_s umschaltfkt( gang_s j[], gang_s n[], gang_s w[], int t, int tol )
{
int a;
int b;
for( a = 20; a > 0; a--)
{
lcd.setCursor(0, 0);
lcd.print((j[a].gUw + ((j[a].gUw*tol)/100)));
lcd.setCursor(0,1);
lcd.print((j[a].gUa + ((j[a].gUa*tol)/100)));
analogWrite(uaPinPWM, ((j[a].pwmua + ((j[a].pwmua*tol)/100))));
delay(t/42);
}
for( b = 0; b < 20; b++){
lcd.setCursor(0, 0);
lcd.print(w[b].gUw);
lcd.setCursor(0,1);
lcd.print(w[b].gUa);
analogWrite(uaPinPWM, j[b].pwmua);
delay(t/42);
}
return w[20];
}
в конце ошибка test:6: error: 'gang_s does not name a type
и test:289: error: 'umschaltfkt' was not declared in this scope
не понимаю из-за чего эти ошибки появились ведь вроде структура декларирована правилно и функ. тоже есть. я уже отчаился тут с этой программой =( помогите
зарание спасибо!
ооок ошибка нашлась, извинияюсь за глупость