• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

a function-definition is not allowed here before '{' token

Object Storage Arubacloud
0 głosów
175 wizyt
pytanie zadane 24 października 2022 w Mikrokontrolery przez Mechanik_10 Nowicjusz (120 p.)

Witam, zaczynam dopiero swoją przygodę z arduino, w chwili obecnej tworzę i przeklejam oraz sprawdzam działanie różnych funkcji i nie wiem dlaczego wyświetla się komunikat braku funkcji / definicji {     ?

 

#include <Wire.h>
#include <DS3231.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][4] = {"NDZ", "PON", "WT", "ŚR", "CZW", "PT", "SO"};

int Day; 
int Month;
int Year; 
int Secs;
int Minutes;
int Hours;

String dofweek; // day of week

String myDate; 
String myTime; 

#define SEALEVELPRESSURE_HPA (1028)   //miałem 1013.25,   od AM8 -13hPa, od AM7 +4,75hPa
#define __BME280_H__

Adafruit_BME280 bme; // I2C

LiquidCrystal_I2C lcd(0x27, 16, 2);

unsigned long delayTime;

byte znak_stopnia[8] = 
{                                             //tworzymy znak stopnia
  0b01110,
  0b01010,
  0b01110,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};

byte znak_procent[8] = 
{                                             //tworzymy znak stopnia
  0b00000,
  0b00000,
  0b00000,
  0b11001,
  0b11010,
  0b00100,
  0b01011,
  0b10011
};



void setup()
{
  lcd.createChar(0, znak_stopnia);           //utworz znak stopnia
  lcd.createChar(1, znak_procent);           //utworz znak procentów
  
  Wire.begin();
  Serial.begin(9600);
  lcd.begin(16, 2);
    lcd.init();
  lcd.backlight();
  delay(3000); // wait for console opening

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
}



void loop()
{
  DateTime now = rtc.now();
  lcd.clear();        
  Day = now.day(); 
  Month = now.month(); 
  Year = now.year();
  Secs = now.second(); 
  Hours = now.hour(); 
  Minutes = now.minute(); 
  dofweek = daysOfTheWeek[now.dayOfTheWeek()];  

  myDate = myDate +dofweek+ " "+ Day + "-" + Month + "-" + Year ; 
  myTime = myTime + Hours +":"+ Minutes +":" + Secs ; 
  
  // send to serial monitor
  
  //Serial.println(dofweek);  //wyłączyłem 
  
  Serial.println(myDate); 
  Serial.println(myTime);


  //Print on lcd

  lcd.setCursor(1, 0);
  lcd.print("");
  lcd.print(bme.readTemperature() - 0.5);
  lcd.print((char)0);                       //wyswietl znak stopnia
  lcd.print("C");


  lcd.setCursor(10, 0);
  lcd.print("");
  lcd.print(bme.readHumidity());
  lcd.print((char)1);                       //wyswietl znak procent


  lcd.setCursor(0, 1);
  lcd.print("");
  lcd.print(bme.readPressure() / 100.0F +6.3);  // -2.28 miałem
  //lcd.print(" hPa");

 
  lcd.setCursor(8,1); 
  lcd.print(myTime); 
  myDate = "";   
  myTime = ""; 
  

  Serial.print("T: = ");
  Serial.print(bme.readTemperature() - 0.5);
  Serial.println("°C");

  Serial.print("P: = ");

  Serial.print(bme.readPressure() / 100.0F +6.3);  //-2.28 miałem
  Serial.println(" hPa");

  Serial.print("Approx. Altitude = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");

  Serial.print("H: = ");
  Serial.print(bme.readHumidity());
  Serial.println("%");

  delay(1000);


}

 

1 odpowiedź

0 głosów
odpowiedź 25 października 2022 przez Oscar Nałogowiec (29,290 p.)

W okolicy 78 linii masz niezamkniętą klamerke. Otwierasz klamerkę od if (trochę niepotrzebnie) i jej nie zamyklasz - zakładając że zamykająca klamerka jest od funkcji setup.

komentarz 30 października 2022 przez Mechanik_10 Nowicjusz (120 p.)
Dziękuję, za zwrócenie uwagi - poprawnie skompilowało.
komentarz 31 października 2022 przez Oscar Nałogowiec (29,290 p.)
A tak swoją drogą, sporo sprzętu ma podpięte do tego procka.

Podobne pytania

0 głosów
1 odpowiedź 2,371 wizyt
0 głosów
2 odpowiedzi 449 wizyt
0 głosów
1 odpowiedź 793 wizyt
pytanie zadane 4 sierpnia 2019 w C i C++ przez WojtaZio23 Użytkownik (660 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...