Skocz do zawartości

Pomocna odpowiedź

Napisano (edytowany)

Witam mam problem z kompilacją gdyż wyskakuje mi taki błąd i nie wiem czemu tak się dzieje. Pomoże ktoś ?

#include <Ultrasonic.h>
 
// definicje dla HCSR04
 #define TRIGGER_PIN 7
 #define ECHO_PIN 4
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
 
// silnik lewy
 const int kierunekLewy=12;
 const int hamulecLewy=9;
 const int predkoscLewy=3;
 
//silnik prawy
 const int kierunekPrawy=13;
 const int hamulecPrawy=8;
 const int predkoscPrawy=11;
 
//ustawienia
 void setup()
 {
 Serial.begin(9600);
 pinMode(kierunekLewy,OUTPUT);
 pinMode(kierunekPrawy,OUTPUT);
 pinMode(hamulecLewy,OUTPUT);
 pinMode(hamulecPrawy,OUTPUT);
 pinMode(predkoscLewy,OUTPUT);
 pinMode(predkoscPrawy,OUTPUT);
 }
 
//petla glowna programu
 void loop()
 {
 float cmMsec;
 long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

 
doPrzodu();
 delay(50);
 
if (cmMsec<=30)
 {
 doTylu();
 delay(500);
 }
 }
 
void doPrzodu()
 {
 analogWrite(predkoscLewy,100);
 analogWrite(predkoscPrawy,105);
//Lewy do przodu
 digitalWrite(kierunekLewy,HIGH);
 digitalWrite(hamulecLewy,LOW);
//Prawy do przodu
 digitalWrite(kierunekPrawy,HIGH);
 digitalWrite(hamulecPrawy,LOW);
 }
 
void doTylu()
 {
 analogWrite(predkoscLewy,200);
 analogWrite(predkoscPrawy,0);
//Lewy do przodu
 digitalWrite(kierunekLewy,LOW);
 digitalWrite(hamulecLewy,LOW);
//Prawy stop
 digitalWrite(kierunekPrawy,HIGH);
 digitalWrite(hamulecPrawy,HIGH);
 }


 

program.png

Edytowano przez Sabre

Próbuje skomplilować  i zaznacza mi na czerwono te linijkę kodu - long microsec = ultrasonic.timing(); i wyskakuje within this context 

I tylko tyle?

Masz tam na dole takie fajne czarne okieneczko, w tej chwili jest ściśnięte do minimum, chwyć myszkę i je rozciągnij, popatrz czy coś na czerwono przypadkiem nie pisze.

Poza tym przed kompilacją otwórz preferencje i zaznacz wyświetlanie wszystkich błędów kompilatora.

Jak to zrobisz, skompiluj jeszcze raz, jeśli coś się wyświetliło to skopiuj i wklej na forum (nie rób screenshota tylko wklej jako tekst, najlepiej poprzez funkcję "wstaw kod").

Dopiero wtedy ktoś będzie mógł Ci pomóc.

@Treker jesteś tam może? Nie można by jakoś przykleić takiej informacji do działu "programowanie" (o zamieszczaniu błędów z Arduino IDE)? Bo ja już chyba piąty raz tłumaczę jak to się robi...











In file included from C:\Users\Dell\Documents\Arduino\sketch_jun22a\sketch_jun22a.ino:1:0:

C:\Users\Dell\Documents\Arduino\libraries\Ultrasonic-3.0.0\src/Ultrasonic.h: In function 'void loop()':

C:\Users\Dell\Documents\Arduino\libraries\Ultrasonic-3.0.0\src/Ultrasonic.h:43:18: error: 'unsigned int Ultrasonic::timing()' is private

     unsigned int timing();

                  ^

sketch_jun22a:34:36: error: within this context

  long microsec = ultrasonic.timing();

                                    ^

sketch_jun22a:35:21: error: 'class Ultrasonic' has no member named 'convert'

 cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

                     ^

In file included from C:\Users\Dell\Documents\Arduino\sketch_jun22a\sketch_jun22a.ino:1:0:

C:\Users\Dell\Documents\Arduino\libraries\Ultrasonic-3.0.0\src/Ultrasonic.h:26:12: error: expected unqualified-id before numeric constant

 #define CM 28

            ^

C:\Users\Dell\Documents\Arduino\sketch_jun22a\sketch_jun22a.ino:35:51: note: in expansion of macro 'CM'

 cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

                                                   ^

exit status 1
within this context

takie cos sie wysweitla

No to teraz dwa pytania:

Dlaczego chcesz użyć metody timing i nie dociera do Ciebie, że to prywatna metoda i nie jest dostępna w aplikacji?

Skąd wziąłeś informacje o tym, że istnieje jakaś metoda "convert"?

A przecież jak wół wyświetla się informacja, że:
 

error: 'unsigned int Ultrasonic::timing()' is private

error: 'class Ultrasonic' has no member named 'convert'

Czego w tych dwóch zdaniach nie rozumiesz?

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...