Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Arduino Zgrzewarka bład: exit status 1 ''''PULLUP'''' was not declared in this s

XMarian 29 Apr 2019 19:47 1047 14
  • #1
    XMarian
    Level 6  
    Cześć.
    Zbudowałem zgrzewarkę opartą na kodzie z netu i przy wgrywaniu najpierw nie miał biblioteki a po wgraniu z netu bibilioteki button wyskakuje błąd exit status 1
    'PULLUP' was not declared in this scope
    Mam podejrzenie że zła bibliotekę wgrałem ale nie wiem jak to sprawdzić lub która bibliotekę wybrać bo jest ich masa.
    Kod poniżej : (mam nadzieję że dobry ten znacznik wstawiłem)

    Code: c
    Log in, to see the code
  • #2
    kaczakat
    Level 33  
    Jeśli sam nie majstrowałeś przy obiektach "Button plus= Button(2,PULLUP);" to musisz znaleźć bibliotekę, która w przykładzie ma tak definiowane obiekty. W bibliotece button w Arduino jest tylko podawany nr pinu gdzie jest podłączony przycisk.
  • #3
    khoam
    Level 41  
    Podaj link do tej biblioteki Button, z której skorzystałeś i przy okazji kod programu umieszcza się w znacznikach syntax.
  • #5
    Slawek K.
    Level 35  
    To jest biblioteka Button.h która standardowo instaluje się z Arduino IDE, i jest napisana kiedy Arduino było ww wersji poniżej 1.0.
    Tu example z tej biblioteki :
    Code: c
    Log in, to see the code

    Niestety nie została zaktulizowana. W tych starych wersjach definicja pinu pullup była opisana jako PULLUP a nie jak teraz INPUT_PULLUP.
    Wystarczy zamienić na INPUT_PULLUP i będzie ok.

    Pozdr
  • #6
    XMarian
    Level 6  
    Sławek po wstawieniu :
    "
    Button menu = Button(4,INPUT_PULLUP);
    Button plus= Button(2,INPUT_PULLUP);
    Button minus= Button(3,INPUT_PULLUP);
    Button start= Button(0,INPUT_PULLUP);
    "
    Podświetliło się input_pullup czyli komenda dobra ale wyskoczył błąd:

    zgrzewarka2.0:15:44: error: no matching function for call to 'Button::Button(int, int)'

    Button menu = Button(4,INPUT_PULLUP);
    C:\Users\jj\Documents\Arduino\libraries\Button/Button.h:14:3: note: candidate: Button::Button(uint8_t)

    Zauważyłem też że nazwa biblioteki button.h się nie podświetla a inne nazwy bibliotek się podświetlają.Edit (Ręcznie dodałem bibliotekę i się zaświeciła nazwa)
    Biblioteka która doinstalowałem to button Michael Adams."
    #include <Button.h>
    #include <LiquidCrystal.h>
    #include <EEPROM.h> "
  • #7
    khoam
    Level 41  
    XMarian wrote:
    Biblioteka która doinstalowałem to button Michael Adams."

    Zgodnie z informacją zamieszczoną pod tym linkiem, powinnno być:
    Code: c
    Log in, to see the code
  • #8
    kaczakat
    Level 33  
    Bo zapewne tak jak pisałem masz bibliotekę, która przyjmuje jeden argument, czyli jest 'Button::Button(int)'. Musisz sobie to przerobić lub skoro jest to wersja ze starej biblioteki to można ściągnąć archiwalne wersje Arduino, starą wersję biblioteki i tak to próbować skompilować bez edycji szkicu. Zresztą masz tu użyte potem INPUT_PULLUP więc raczej nie chodzi o starą wersję Arduino, tylko inną bibliotekę. Jak chcesz użyć gotowca z neta to niestety musisz mieć dokładnie wszystko 1:1 - sprzęt, wersję Arduino, wersję bibliotek.
    Podejrzewam, że chodzi o tę bibliotekę Link , ściągnij, skasuj obecną, wgraj tą - są tu dwa inty przy tworzeniu obiektu i nazwy metod, niedostępne w mojej wersji biblioteki button (i w tej, której Ty próbujesz użyć).
  • #9
    Slawek K.
    Level 35  
    Zrób jak pisze @khoam , a pin 4 widzę, że jest przez pinMode zdefiniowany jako INPUT_PULLUP więc bedzie ok.

    Pozdr
  • #10
    kaczakat
    Level 33  
    Slawek K. wrote:
    Zrób jak pisze @khoam , a pin 4 widzę, że jest przez pinMode zdefiniowany jako INPUT_PULLUP więc bedzie ok.

    Pozdr

    Ciekawe tylko skąd weźmie jeszcze menu.uniquePress() by to po tym zadziałało. Albo podmiana biblioteki, albo przerobienie całego programu na aktualnie użytą.
  • #11
    Slawek K.
    Level 35  
    Kolego @XMarian , a skad masz ta biblioteke Button ? Usun ja i skorzystaj z tej ktora instaluje sie wraz z Arduino IDE, wtedy po zmianie w przypisaniu definicji konstruktora z PULLUP na INPUT_PULLUP wszystko bedzie dzialac.

    @kaczakat, dokladnie to samo zaproponowales co @khoam
    kaczakat wrote:
    Jak tamta biblioteka button nie miała jakiś szczególnych funkcji to po prostu powywalaj Button menu = Button(4, PULLUP); i zostaw: Button menu = Button(4);


    Pozdr
  • #12
    kaczakat
    Level 33  
    Napisałem, że jeśli nie miałaby szczególnych funkcji, niestety ma. I jaką wersję Arduino masz na myśli? Bo wcześniej nie miałem tej biblioteki button i próbowałem to skompilować i niestety nie wyszło, także nie jest raczej żadna z button.h dołączona do Arduino IDE.
    Podmieniłem biblioteki na tą z linka wcześniej i się kompiluje z PULLUP czy bez:
    Arduino Zgrzewarka bład: exit status 1 ''''PULLUP'''' was not declared in this s
  • #13
    XMarian
    Level 6  
    Czyli najnowsza wersja arduino plus biblioteka od jimmybyrum i kod bez zmian powinien działać ?

    Walcze z nią od wczoraj ale chyba coś zle robie bo arduino pisze że dodał bibliotekę ale button.h się nie podświetla.Dodaje przez szkic >dołacz biblioteke zip.

    Nie wiem też jak skasować bibliotekę button orginalna z arduino ...
  • #14
    kaczakat
    Level 33  
    Biblioteki ściągnięte managerem bibliotek wgrywają się do "...\Documents\Arduino\libraries\".
    Jak znajdziesz tam katalog Button to zobacz jak wygląda układ plików (by były tak samo), stary skasuj i wrzuć ten z załącznika, uruchom Arduino ponownie i próbuj ponownie skompilować.
    Możesz też dodać bibliotekę w ZIP, opcja jest poniżej managera bibliotek.
  • #15
    XMarian
    Level 6  
    Dodałem przez zip plik który podałeś i się skompilowało bez błędów.
    Nie wiem co zmieniłeś w bibliotece ale szacunek za wiedzę.
    Dziękuję za pomoc wszystkim.
    ps.dostałem info że post został zgłoszony moderatorowi chętnie się dowiem co komu nie pasuje w kodzie który jest ogólnodostępny .