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

Biblioteka dla modułu radiowego HC-12 SI4463 433MHz do mikrokontrolerów Atmega328P-PU w języku C?

20 Paź 2020 08:33 1422 17
  • #1 18988852
    Konto nie istnieje
    Poziom 1  
  • #4 18990420
    Konto nie istnieje
    Poziom 1  
  • #5 18990447
    khoam
    Poziom 42  
    Antosik.co napisał:
    I jak jej użyć? Nie ma żadnej sensownej instrukcji do niej, a w przykładach jest tona kodu i nie wiadomo co robi. Inne biblioteki dla Arduino pozwalają wysyłać dane pisząc kilka linijek kodu.

    Jakiś opis jest tutaj: https://blog.zakkemble.net/si4463-radio-library-avr-arduino/
    Ponadto dokumentacja kodu: https://zkemble.github.io/Si446x/

    Antosik.co napisał:
    Próbowałem tak robić ale AVR-GCC wywala błędy przy próbie kompilacji:

    W wypadku bibliotek Arduino to powinieneś użyć avr-g++ w trybie -std=gnu++11.

    W środowisku Arduino to avr-g++ wywoływany jest z następującymi paramterami (dla atmega 328p):
    Kod: Bash
    Zaloguj się, aby zobaczyć kod

    Antosik.co napisał:
    Co to jest w tryb std=gnu++11

    Tryb dla kompilacji w wersji C++11 - taki jest używany aktualnie przez toolchain Arduino. Informacje spod poniższego linku mogą ułatwić zadanie (gotowe pliki makefile):
    https://github.com/sudar/Arduino-Makefile
  • #6 18990534
    Konto nie istnieje
    Poziom 1  
  • #7 18990544
    khoam
    Poziom 42  
    Arduino IDE automagicznie włącza plik Arduino.h do kompilacji wszystkich plików projektu. Musisz więc dodać (dopisać) jego włączanie do wszystkich plików nagłówkowych z biblioteki, której używasz. Na początek pewnie w HC12.h.
  • #8 18991547
    Konto nie istnieje
    Poziom 1  
  • #10 18992526
    Konto nie istnieje
    Poziom 1  
  • #11 18992746
    tmf
    VIP Zasłużony dla elektroda
    Zapomij o robieniu takiego mixu. Skończysz na tym, że będziesz miał mnóstwo zbędnego kodu, poza tym łączenie alikacji napisanej w C z c++ to nie tylko wywołanie dwóch kompilatorów. Trzeba zmienić deklaracje dodając odpowiednie extern "c" i kikla innych rzeczy. Pomysł, żeby wproast wykorzystać wyrwane z kontekstu kody z arduino jest IMHO bardzo słaby.
    Skoro masz kody w c to z nich skorzystaj. Tam masz raptem kilka funkcjo o samoobjaśniających się nazwach.
  • #12 18992788
    Konto nie istnieje
    Poziom 1  
  • #13 18992797
    tmf
    VIP Zasłużony dla elektroda
    Jeśłi jest kod z Arduino, to na jego podstawie łatwo stworzysz kod w C. Z tegho co widzę, ten moduł to po prostu konwerter RS232-radio.
  • #14 18992846
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #15 18992893
    khoam
    Poziom 42  
    Nie musisz używać programowej emulacji UART, lepiej użyć sprzętowego.
  • #16 19060048
    kaczakat
    Poziom 34  
    Do obsługi tego modułu nie potrzebujesz żadnych bibliotek dedykowanych dla tego modułu. Bierzesz bibliotekę UART, np. Peter Fleury http://www.peterfleury.epizy.com/avr-software.html , łączysz dwa uC kablem przez UART, ustawiasz parametry UART jak HC-12, wgrywasz przykład i sprawdzasz czy biblioteka działa prawidłowo. Potem odłączasz kable i podłączasz moduły HC-12. Oczywiście antena musi być podłączona przed podłączeniem zasilania. Domyślnie będą ustawione na komunikację 9600,0,1 - bez kontroli parzystości i jeden bit stopu, kanał WIFI nr 1. I ma działać tak samo, te moduły zastępują kabel.
    Ewentualnie możesz sobie napisać parę komend AT zebranych w bibliotekę, jest ich kilkanaście i obsługa jest banalna, znajdziesz je w PDF do tego modułu. Podłączasz pin SET do GND i zmieniasz wybrane parametry, przydatnych jest w sumie kilka - zmiana kanału WIFI - wysyłasz na uart tekst "AT+C044", prędkości UART (im większa tym będzie krótszy zasięg), można to spokojnie zrobić z terminala PC raz dla obu modułów, by obserwować poprawność ustawień. W sumie to tyle komend by mi wystarczyło, chyba szkoda tworzyć osobne pliki.
    Pomogłem? Kup mi kawę.
  • #17 19078904
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

Dyskusja dotyczy problemów z używaniem modułu radiowego HC-12 SI4463 433MHz w projektach opartych na mikrokontrolerach Atmega328P-PU. Użytkownik poszukiwał bibliotek do obsługi tego modułu w języku C, ponieważ dostępne zasoby były głównie dla platformy Arduino. Uczestnicy forum sugerowali różne podejścia, w tym wykorzystanie bibliotek Arduino, jednak pojawiły się trudności z kompilacją i integracją kodu. Wskazano na konieczność dołączenia pliku Arduino.h oraz na problemy z funkcjami, które nie były dostępne w kontekście AVR. Ostatecznie zasugerowano, aby zamiast próbować łączyć kody z Arduino, użytkownik stworzył własne rozwiązania w C, korzystając z dokumentacji i przykładów AT dla HC-12. Użytkownik napotkał również problemy z przerwaniami i komunikacją między mikrokontrolerami, co wymagało dalszej analizy kodu.
Podsumowanie wygenerowane przez model językowy.
REKLAMA