error functie definitie
7 berichten
• Pagina 1 van 1
- sjoerd rosier
- Berichten: 4
- Geregistreerd: 14 Jan 2017, 19:35
error functie definitie
Hallo allemaal. ik heb een code gemaakt voor een 20x4 lcd menu maar ik krijg de hele tijd deze error:
weet iemand hoe ik dit probleem kan oplossen? dat zou fijn zijn. groet Sjoerd
Arduino: 1.6.11 (Windows 10), Board:"Arduino/Genuino Uno"
C:\Users\Sjoerd\Desktop\menu_4_items_arduino_2.0\menu_4_items_arduino_2.0.ino: In function 'void loop()':
menu_4_items_arduino_2.0:124: error: a function-definition is not allowed here before '{' token
{
^
menu_4_items_arduino_2.0:277: error: expected '}' at end of input
}
^
menu_4_items_arduino_2.0:277: error: expected '}' at end of input
exit status 1
a function-definition is not allowed here before '{' token
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
dit is de code die ik gebruik:
cpp code
weet iemand hoe ik dit probleem kan oplossen? dat zou fijn zijn. groet Sjoerd
Arduino: 1.6.11 (Windows 10), Board:"Arduino/Genuino Uno"
C:\Users\Sjoerd\Desktop\menu_4_items_arduino_2.0\menu_4_items_arduino_2.0.ino: In function 'void loop()':
menu_4_items_arduino_2.0:124: error: a function-definition is not allowed here before '{' token
{
^
menu_4_items_arduino_2.0:277: error: expected '}' at end of input
}
^
menu_4_items_arduino_2.0:277: error: expected '}' at end of input
exit status 1
a function-definition is not allowed here before '{' token
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
dit is de code die ik gebruik:
cpp code
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);
int contrast=127;
int menuitem = 1;
int page = 1;
volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;
int downButtonState = 0;
int upButtonState = 0;
int selectButtonState = 0;
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;
void drawMenu();
void checkIfDownButtonIsPressed();
void checkIfUpButtonIsPressed();
void checkIfSelectButtonIsPressed();
void turnBacklightOff();
void turnBacklightOn();
void resetDefaults();
void setup() {
pinMode(13, INPUT_PULLUP); //down knop
pinMode(12, INPUT_PULLUP); //select knop
pinMode(11, INPUT_PULLUP); //up knop
pinMode(7,OUTPUT); //ledje
digitalWrite(7,HIGH); //Turn Backlight ON
Serial.begin(9600);
lcd.begin();
lcd.clear(); //lcd leegmaken als er iets opstond
}
void loop() {
drawMenu(); //lcd function
checkIfDownButtonIsPressed(); //kijken voor knoppen of ze gedrukt zijn
checkIfUpButtonIsPressed();
checkIfSelectButtonIsPressed();
downButtonState = digitalRead(13);
selectButtonState = digitalRead(12);
upButtonState = digitalRead(11);
if (up && page == 1 || 2 ) { //als op knop gedrukt is in het menu naar boven gaan
up = false;
menuitem--;
if (menuitem==0)
{
menuitem=5;
}
}else if (up && page == 3 ) {
up = false;
contrast--;
}
if (down && page == 1 || 2){ // als de down knop gedrukt is in het menu naar beneden gaan
down = false;
menuitem++;
if (menuitem==5)
{
menuitem=1;
}
}else if (down && page == 3 ) {
down = false;
contrast++;
}
if (middle) { //als middelste knop gedrukt is terug naar home page of naar page die geselecteerd is
middle = false;
{
if (page == 1 && menuitem==2)
{
if (digitalRead(7) == true)
{
//digitalWrite(7, LOW);
turnBacklightOff();
}
else
{
// digitalWrite(7, HIGH);
turnBacklightOn();
}
}
if(page == 1 && menuitem ==3)
{
resetDefaults();
}
if(page == 1 && menuitem == 1){
page = 3;
}
if(menuitem == 4){
page = 2;
}
if(page == 2 && menuitem == 4){
page = 4;
}
}
void checkIfDownButtonIsPressed()//kijken of knop down gedrukt is en down op true zetten
{
if (downButtonState != lastDownButtonState)
{
if (downButtonState == 0)
{
down=true;
}
delay(50);
}
lastDownButtonState = downButtonState;
}
void checkIfUpButtonIsPressed() //kijken of knop up gedrukt is en up op true zetten
{
if (upButtonState != lastUpButtonState)
{
if (upButtonState == 0)
{
up=true;
}
delay(50);
}
lastUpButtonState = upButtonState;
}
void checkIfSelectButtonIsPressed() //middelste knop als middle= true zetten als de knup ingedrukt is
{
if (selectButtonState != lastSelectButtonState)
{
if (selectButtonState == 0) {
middle=true;
}
delay(50);
}
lastSelectButtonState = selectButtonState;
}
void drawMenu() // lcd scherm het menu opzetten
{
if (page==1)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HOOFD MENU");
if (menuitem==1)
{
lcd.setCursor(15,1);
lcd.print("--");
}
lcd.setCursor(0, 1);
lcd.print(">LEUK GETAL");
if (menuitem==2)
{
lcd.setCursor(15,2);
lcd.print("--");
}
lcd.setCursor(0,2);
lcd.print(">Licht: ");
if (digitalRead(7) == true)
{
lcd.print("aan");
}
else
{
lcd.print("uit");
}
if (menuitem==3)
{
lcd.setCursor(15,3);
lcd.print("--");
}
lcd.setCursor(0, 3);
lcd.print(">Reset");
}
else if (page==3)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LEUK GETAL");
lcd.setCursor(0, 2);
lcd.print("Waarde:");
lcd.setCursor(15, 2);
lcd.print(contrast);
}
else if (page== 2)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("HOOFD MENU");
if (menuitem==2)
{
lcd.setCursor(15,1);
lcd.print("--");
}
lcd.setCursor(0, 1);
lcd.print(">Licht:");
if (menuitem==3)
{
lcd.setCursor(15,3);
lcd.print("--");
}
lcd.setCursor(0, 3);
lcd.print(">Reset");
if(menuitem==4)
{
lcd.setCursor(15,4);
lcd.print("--");
}
lcd.setCursor(0,4);
lcd.print("<hoi");
}else if(page == 4)
{
lcd.clear();
lcd.setCursor(0,2);
lcd.print("YEAH");
}
void resetDefaults()//terug naar de begin instellingen
{
contrast = 127;
setContrast();
digitalWrite(7, HIGH);
turnBacklightOn();
}
void turnBacklightOn()//led aanzetten
{
digitalWrite(7,HIGH);
}
void turnBacklightOff()//led uitzetten
{
digitalWrite(7,LOW);
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: error functie definitie
Eerst ff de code opschonen met CTRL-T
cpp code
cpp code
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);
int contrast = 127;
int menuitem = 1;
int page = 1;
volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;
int downButtonState = 0;
int upButtonState = 0;
int selectButtonState = 0;
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;
void drawMenu();
void checkIfDownButtonIsPressed();
void checkIfUpButtonIsPressed();
void checkIfSelectButtonIsPressed();
void turnBacklightOff();
void turnBacklightOn();
void resetDefaults();
void setup() {
pinMode(13, INPUT_PULLUP); //down knop
pinMode(12, INPUT_PULLUP); //select knop
pinMode(11, INPUT_PULLUP); //up knop
pinMode(7, OUTPUT); //ledje
digitalWrite(7, HIGH); //Turn Backlight ON
Serial.begin(9600);
lcd.begin();
lcd.clear(); //lcd leegmaken als er iets opstond
}
void loop() {
drawMenu(); //lcd function
checkIfDownButtonIsPressed(); //kijken voor knoppen of ze gedrukt zijn
checkIfUpButtonIsPressed();
checkIfSelectButtonIsPressed();
downButtonState = digitalRead(13);
selectButtonState = digitalRead(12);
upButtonState = digitalRead(11);
if (up && page == 1 || 2) { //als op knop gedrukt is in het menu naar boven gaan
up = false;
menuitem--;
if (menuitem == 0) {
menuitem = 5;
}
} else if (up && page == 3) {
up = false;
contrast--;
}
if (down && page == 1 || 2) { // als de down knop gedrukt is in het menu naar beneden gaan
down = false;
menuitem++;
if (menuitem == 5) {
menuitem = 1;
}
} else if (down && page == 3) {
down = false;
contrast++;
}
if (middle) { //als middelste knop gedrukt is terug naar home page of naar page die geselecteerd is
middle = false;
{
if (page == 1 && menuitem == 2) {
if (digitalRead(7) == true) {
//digitalWrite(7, LOW);
turnBacklightOff();
} else {
// digitalWrite(7, HIGH);
turnBacklightOn();
}
}
if (page == 1 && menuitem == 3) {
resetDefaults();
}
if (page == 1 && menuitem == 1) {
page = 3;
}
if (menuitem == 4) {
page = 2;
}
if (page == 2 && menuitem == 4) {
page = 4;
}
}
void checkIfDownButtonIsPressed() //kijken of knop down gedrukt is en down op true zetten
{
if (downButtonState != lastDownButtonState)
{
if (downButtonState == 0)
{
down=true;
}
delay(50);
}
lastDownButtonState = downButtonState;
}
void checkIfUpButtonIsPressed() //kijken of knop up gedrukt is en up op true zetten
{
if (upButtonState != lastUpButtonState)
{
if (upButtonState == 0)
{
up=true;
}
delay(50);
}
lastUpButtonState = upButtonState;
}
void checkIfSelectButtonIsPressed() //middelste knop als middle= true zetten als de knup ingedrukt is
{
if (selectButtonState != lastSelectButtonState)
{
if (selectButtonState == 0) {
middle=true;
}
delay(50);
}
lastSelectButtonState = selectButtonState;
}
void drawMenu() // lcd scherm het menu opzetten
{
if (page==1)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HOOFD MENU");
if (menuitem==1)
{
lcd.setCursor(15,1);
lcd.print("--");
}
lcd.setCursor(0, 1);
lcd.print(">LEUK GETAL");
if (menuitem==2)
{
lcd.setCursor(15,2);
lcd.print("--");
}
lcd.setCursor(0,2);
lcd.print(">Licht: ");
if (digitalRead(7) == true)
{
lcd.print("aan");
}
else
{
lcd.print("uit");
}
if (menuitem==3)
{
lcd.setCursor(15,3);
lcd.print("--");
}
lcd.setCursor(0, 3);
lcd.print(">Reset");
}
else if (page==3)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LEUK GETAL");
lcd.setCursor(0, 2);
lcd.print("Waarde:");
lcd.setCursor(15, 2);
lcd.print(contrast);
}
else if (page== 2)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("HOOFD MENU");
if (menuitem==2)
{
lcd.setCursor(15,1);
lcd.print("--");
}
lcd.setCursor(0, 1);
lcd.print(">Licht:");
if (menuitem==3)
{
lcd.setCursor(15,3);
lcd.print("--");
}
lcd.setCursor(0, 3);
lcd.print(">Reset");
if(menuitem==4)
{
lcd.setCursor(15,4);
lcd.print("--");
}
lcd.setCursor(0,4);
lcd.print("<hoi");
} else if(page == 4)
{
lcd.clear();
lcd.setCursor(0,2);
lcd.print("YEAH");
}
void resetDefaults() //terug naar de begin instellingen
{
contrast = 127;
setContrast();
digitalWrite(7, HIGH);
turnBacklightOn();
}
void turnBacklightOn() //led aanzetten
{
digitalWrite(7,HIGH);
}
void turnBacklightOff() //led uitzetten
{
digitalWrite(7,LOW);
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: error functie definitie
Je mist sluit accollade()s in loop() en meerdere functies. als je CTRL-T doet dan formatteert de source beter met inspringen en kun je zo zien waar de accolades ontbreken.
Re: error functie definitie
de fout staat in regel 124 dus iets erboven (120) moet volgens nico dus een } staan.
je zult zien dat alle functies dan netjes aan de linkerkant beginnen.
je zult zien dat alle functies dan netjes aan de linkerkant beginnen.
paul deelen
shooter@home.nl
shooter@home.nl
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: error functie definitie
Er zitten er op meerdere plekken te weinig
- sjoerd rosier
- Berichten: 4
- Geregistreerd: 14 Jan 2017, 19:35
Re: error functie definitie
Dank voor de hulp ik zal het doen.
- sjoerd rosier
- Berichten: 4
- Geregistreerd: 14 Jan 2017, 19:35
Re: error functie definitie
- Code: Alles selecteren
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);
int contrast = 127;
int menuitem = 1;
int page = 1;
volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;
int downButtonState = 0;
int upButtonState = 0;
int selectButtonState = 0;
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;
void drawMenu();
void checkIfDownButtonIsPressed();
void checkIfUpButtonIsPressed();
void checkIfSelectButtonIsPressed();
void turnBacklightOff();
void turnBacklightOn();
void resetDefaults();
void setup() {
pinMode(13, INPUT_PULLUP); //down knop
pinMode(12, INPUT_PULLUP); //select knop
pinMode(11, INPUT_PULLUP); //up knop
pinMode(7, OUTPUT); //ledje
digitalWrite(7, HIGH); //Turn Backlight ON
Serial.begin(9600);
lcd.begin();
lcd.clear(); //lcd leegmaken als er iets opstond
}
void loop() {
drawMenu(); //lcd function
checkIfDownButtonIsPressed(); //kijken voor knoppen of ze gedrukt zijn
checkIfUpButtonIsPressed();
checkIfSelectButtonIsPressed();
downButtonState = digitalRead(13);
selectButtonState = digitalRead(12);
upButtonState = digitalRead(11);
if (up && page == 1 || 2 ) { //als op knop gedrukt is in het menu naar boven gaan
up = false;
menuitem--;
if (menuitem == 0)
{
menuitem = 5;
}
} else if (up && page == 3 ) {
up = false;
contrast--;
}
if (down && page == 1 || 2) { // als de down knop gedrukt is in het menu naar beneden gaan
down = false;
menuitem++;
if (menuitem == 5)
{
menuitem = 1;
}
} else if (down && page == 3 ) {
down = false;
contrast++;
}
if (middle) { //als middelste knop gedrukt is terug naar home page of naar page die geselecteerd is
middle = false;
{
if (page == 1 && menuitem == 2)
{
if (digitalRead(7) == true)
{
//digitalWrite(7, LOW);
turnBacklightOff();
}
else
{
// digitalWrite(7, HIGH);
turnBacklightOn();
}
}
if (page == 1 && menuitem == 3)
{
resetDefaults();
}
if (page == 1 && menuitem == 1) {
page = 3;
}
if (menuitem == 4) {
page = 2;
}
if (page == 2 && menuitem == 4) {
page = 4;
}
}
}
}
void checkIfDownButtonIsPressed()//kijken of knop down gedrukt is en down op true zetten
{
if (downButtonState != lastDownButtonState)
{
if (downButtonState == 0)
{
down = true;
}
delay(50);
}
lastDownButtonState = downButtonState;
}
void checkIfUpButtonIsPressed() //kijken of knop up gedrukt is en up op true zetten
{
if (upButtonState != lastUpButtonState)
{
if (upButtonState == 0)
{
up = true;
}
delay(50);
}
lastUpButtonState = upButtonState;
}
void checkIfSelectButtonIsPressed() //middelste knop als middle= true zetten als de knup ingedrukt is
{
if (selectButtonState != lastSelectButtonState)
{
if (selectButtonState == 0) {
middle = true;
}
delay(50);
}
lastSelectButtonState = selectButtonState;
}
void drawMenu() // lcd scherm het menu opzetten
{
if (page == 1)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HOOFD MENU");
if (menuitem == 1)
{
lcd.setCursor(15, 1);
lcd.print("--");
}
lcd.setCursor(0, 1);
lcd.print(">LEUK GETAL");
if (menuitem == 2)
{
lcd.setCursor(15, 2);
lcd.print("--");
}
lcd.setCursor(0, 2);
lcd.print(">Licht: ");
if (digitalRead(7) == true)
{
lcd.print("aan");
}
else
{
lcd.print("uit");
}
if (menuitem == 3)
{
lcd.setCursor(15, 3);
lcd.print("--");
}
lcd.setCursor(0, 3);
lcd.print(">Reset");
}
else if (page == 3)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LEUK GETAL");
lcd.setCursor(0, 2);
lcd.print("Waarde:");
lcd.setCursor(15, 2);
lcd.print(contrast);
}
else if (page == 2)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HOOFD MENU");
if (menuitem == 2)
{
lcd.setCursor(15, 1);
lcd.print("--");
}
lcd.setCursor(0, 1);
lcd.print(">Licht:");
if (menuitem == 3)
{
lcd.setCursor(15, 3);
lcd.print("--");
}
lcd.setCursor(0, 3);
lcd.print(">Reset");
if (menuitem == 4)
{
lcd.setCursor(15, 4);
lcd.print("--");
}
lcd.setCursor(0, 4);
lcd.print("<hoi");
} else if (page == 4)
{
lcd.clear();
lcd.setCursor(0, 2);
lcd.print("YEAH");
}
}
void resetDefaults()//terug naar de begin instellingen
{
contrast = 127;
digitalWrite(7, HIGH);
turnBacklightOn();
}
void turnBacklightOn()//led aanzetten
{
digitalWrite(7, HIGH);
}
void turnBacklightOff()//led uitzetten
{
digitalWrite(7, LOW);
}
met dit werkt het bedankt voor de hulp
7 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten