• 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

VPS Starter Arubacloud
0 głosów
217 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,340 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,340 p.)
A tak swoją drogą, sporo sprzętu ma podpięte do tego procka.

Podobne pytania

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

93,008 zapytań

141,975 odpowiedzi

321,256 komentarzy

62,350 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...