logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[C][atmega32] Arduino – trudności z uruchomieniem projektu, błędy podczas programowania

margas60 26 Maj 2025 20:08 666 19
REKLAMA
  • #1 21561029
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Arduino i droga przez mękę ........ program który działa na jednym sterowniku nie da się skompilować w arduinoIDE żeby wgrać program do rezerwowego sterownika ...... na zaprojektowanym [nie zadna płytka arduino] pcb atmego32, HD44780, PCF8583 w arduino wgrany MIGHTYCORE wybrana atmega32 16Mhz.
    Załącz wszystkie pliki wykorzystywane w tym programie ....... i połamania paluchów na klawiaturze , ja jedna już wykończyłem .........
    Załączniki:
    • Archiwum.zip (13.83 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 21561055
    jony
    Specjalista elektronik
    Posty: 7550
    Pomógł: 1823
    Ocena: 885
    A jakie błedy?
  • #3 21561078
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Lista czerwonych linii błędów jest dłuższa niż sam kod, wysypane całe I2C , cały LCD i sam już nie wiem co jeszcze bo arduinoIDE nawet kolorowa składnie kodu traktuje jak błędy ......
  • REKLAMA
  • #4 21561099
    jony
    Specjalista elektronik
    Posty: 7550
    Pomógł: 1823
    Ocena: 885
    To się umie kompiluje w microchip studio, bo arduino nie używam.
    Załączniki:
    • GccApplication12.zip (317.66 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #5 21561288
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Ok pod warunkiem ze masz Wingroze na pokładzie , ja mam Kubuntu a to kurczy zakres programów których mógłbym używać. Po drugie większość to albo namiastki IDE które najpierw trzeba pół dnia konfigurować albo kombajny które jeszcze nie golą. Ten kod powstał 13 lat temu w AVRstudo4 a arduinoIDE jak sie przekonałem to taka specyfika typu Apple OK ale tylko nasze dedykowane płytki a reszta WON.
  • REKLAMA
  • #7 21561324
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Ile się dało wyczyściłem , zastosowałem biblioteki LiquidCrystal, dla HD44780, wire [I2C} ,PCF8583 [zegar] , teraz mam tylko te linijki komunikatów błędów ale pomysłów co z tym zrobićnie mam i gonie własny ogon ........
    Nowe plki do wglądu z ZIP-e ;
    In file included from /home/marek/Bulid_app/atmega_v1/atmega_v1.ino:17:0:
    /home/marek/Bulid_app/atmega_v1/setdata.h: In function 'void set_time()':
    /home/marek/Bulid_app/atmega_v1/setdata.h:828:43: warning: large integer implicitly truncated to unsigned type [-Woverflow]
    if(rtc.rok == 2050) rtc.rok = 2012;
    /home/marek/Bulid_app/atmega_v1/atmega_v1.ino: In function 'void setup()':
    /home/marek/Bulid_app/atmega_v1/atmega_v1.ino:39:7: error: 'struct RTCData' has no member named 'begin'
    rtc.begin(); // Inicjalizacja RTC
    /home/marek/Bulid_app/atmega_v1/atmega_v1.ino: At global scope:
    /home/marek/Bulid_app/atmega_v1/atmega_v1.ino:482:3: error: expected unqualified-id before 'if'
    if (rtc.dzien_tyg > 4) {
    /home/marek/Bulid_app/atmega_v1/atmega_v1.ino:493:3: error: expected unqualified-id before 'if'
    if (rtc.dzien_tyg > 4) {
    /home/marek/Bulid_app/atmega_v1/atmega_v1.ino:755:1: error: expected declaration before '}' token
    }
    exit status 1
    Compilation error: 'struct RTCData' has no member named 'begin'
    Załączniki:
    • atmega.zip (14.41 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 21561350
    gps79
    Poziom 37  
    Posty: 2208
    Pomógł: 495
    Ocena: 796
    cześć,
    Pobrałem pakiet z postu #1, poprawiłem drobny błąd i skompilowałem dla Arduino IDE. Nie ma potrzeby korzystać z innych bibliotek, bo kod supportujący masz w paczce. Wystarczy dać znać kompilatorowi (bo język Arduino, to dialekt C++), że dodatkowy kod jest napisany w C, a nie w C++. Na górze pliku ino musisz dodać klamrę "extern C" w sposób następujący:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #9 21561393
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Arduino IDE widocznie mnie nie lubi, dodałem extern... i program umarł... zero na LCD, zero reakcji na klawisze...
  • #10 21561440
    gps79
    Poziom 37  
    Posty: 2208
    Pomógł: 495
    Ocena: 796
    Emocjonalne komentarze nic nie pomogą. Maszyny nie myślą, więc nie ma tak, że Cię lubią albo nie.

    Napisz, jak programowałeś mikrokontroler.
    Czy używasz bootloadera z Arduino? Jakie opcje platformy wybrałeś?
    Czy zweryfikowałeś (np. przy użyciu Avrdudess, czy wgrałeś poprawny HEX i masz odpowiednie fusebity?
    Jakbyś podał schemat, to mógłbym się przyjrzeć, czy konfiguracja pinów jest poprawna w programie.
    Zaznacz opcje dodatkowych informacji podczas kompilacji i przekaż nam wyniki z konsoli. Z tego dużo można wyczytać.

    Okno preferencji Arduino IDE z zaznaczoną opcją wyświetlania szczegółowych informacji podczas kompilacji i wgrywania.
  • #11 21561601
    oscil1
    Poziom 24  
    Posty: 657
    Pomógł: 50
    Ocena: 182
    Copy paste i Cargo Cult programowanie tak ma.

    Proponuję nauczyć się podstaw C++, a wtedy Arduino Cię pokocha.

    Jak na razie to robisz takie tam rzeczy - Twoje projekty to właśnie to:


  • #13 21561662
    Chivo
    Poziom 27  
    Posty: 1326
    Pomógł: 81
    Ocena: 130
    Mam w domu zestaw uruchomieniowy AVR na układzie Atmega32. Może na nim napisać ten kod pod Eclipse AVR lub Microchip Studio.
  • #14 21562284
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Program w końcu uruchomiłem, kompiluje się i można wgrać do atmegi. Działa ale głowy nie urywa, jak na takiego laika jak ja to wielki sukces. Są jednak niedomagania, falowanie LCD, ADC działa w żółwim tempie i jeszcze czyta tylko 6 z 8 kanałów, z zapisem nastaw czasu zegara sterującego do pamięci też nie jest różowo. Słowem działa jak disel na trzech cylindrach i jeszcze strasznie kopci ......... potrzebny dobry mechanik.
    Załączniki:
    • sterownik.zip (10.59 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #15 21562288
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    ECLIPSE AVR ... ok tytlko pod linuxa i datashet z wymagana konfiguracja bo kiedyś lata temu jak miałem jeszcze wingroze to próbowałem go używać ale coś nie zagrało i odpuściłem.
  • REKLAMA
  • #16 21566392
    Sentymentalny
    Poziom 16  
    Posty: 131
    Pomógł: 11
    Ocena: 27
    Z okazji dnia dziecka podrzucam prezent autorowi tematu. Wersja pod Platformio w C (źródło było w innym, zeszłorocznym temacie dotyczącym tego samego problemu) z drobnymi poprawkami, które doprowadziły do kompilacji kodu.
    Utworzony pod Ubuntu, więc nie powinien sprawiać kłopotów w innych wersjach Linuxa.
    Załączniki:
    • 2025_05_31_ATmega32_8MHz_Elektroda_.zip (285.14 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #17 21567466
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Mimo wszystko dziękuje za pamięć. SENTYMENTALNY wybacz ale nie wiem czy coś zweryfikowałeś w moim kodzie bo może ślepy jestem ale zmian nie zauważyłem. Ostatnia wersje sterownika oczyściłem z kilu zbędnych funkcji i poleceń oraz poprawiłem kilka literówek co przyspieszyło działanie programu ale odnoszę wrażenie ze mogłoby działać nieco szybciej.
  • #18 21577062
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    Padł mi systemowy dysk , straciłem wszystko. Na szczęście moglem pobrać cały kod z postów które zamieściłem , ale wersje nie do końca działająca i oczyszczona drobnych błędów. To nie działa tak jak w starym sterowniku bo stary AVR staram się przerobić tak żeby Arduino nie pluło czerwienia komunikatów błędów. Potrzebuje pomocy by skończyć ten kod i uruchomić sterownik. Proszę ostatni raz o pomoc .......... bez krytyki i naśmiewania się .
    Załączniki:
    • atmega32.zip (10.84 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #19 21577218
    oscil1
    Poziom 24  
    Posty: 657
    Pomógł: 50
    Ocena: 182
    nie pisz kodu w plikach nagłówkowych.
  • #20 21577252
    margas60
    Poziom 8  
    Posty: 230
    Pomógł: 1
    Ocena: 7
    I co dalej .... mam ten kod pisać od nowa ? ...... nie dam rady ... po prosty nie dam rady ......

Podsumowanie tematu

✨ Dyskusja dotyczy problemów z kompilacją i uruchomieniem projektu opartego na mikrokontrolerze Atmega32 na niestandardowej płytce PCB, wykorzystującej wyświetlacz HD44780 oraz zegar PCF8583, programowanego w Arduino IDE z użyciem biblioteki MIGHTYCORE. Autor napotyka liczne błędy kompilacji, zwłaszcza związane z I2C, LCD oraz strukturą kodu, a także problemy z kompatybilnością Arduino IDE z kodem napisanym pierwotnie w AVR Studio 4. Wskazano konieczność poprawnego dołączenia plików nagłówkowych z użyciem "extern C" oraz zweryfikowania konfiguracji fusebitów i bootloadera. Zaproponowano alternatywne środowiska programistyczne, takie jak Microchip Studio, Eclipse AVR oraz PlatformIO pod Linuxem, które mogą lepiej obsłużyć Atmegę32. Po wielu próbach autorowi udało się uruchomić program, choć z niedoskonałościami takimi jak niestabilność wyświetlacza LCD, wolne działanie ADC i ograniczona liczba odczytywanych kanałów. Wskazano również na konieczność unikania pisania kodu w plikach nagłówkowych. Pomimo trudności, projekt jest w fazie stabilizacji, a społeczność oferuje wsparcie i poprawki kodu, jednak autor prosi o pomoc bez krytyki i zrozumienie ograniczeń początkującego użytkownika.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA