Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 30 maja 2025, o 19:51


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 23 gru 2017, o 23:18 
    Offline
    Nowy

    Dołączył(a): 28 sty 2017
    Posty: 8
    Pomógł: 0

    Cześć! Ponieważ pod moim poprzednim postem nie było odpowiedzi, a trochę rzeczy już ustaliłem, postanowiłem stworzyć oddzielny temat. Tutaj już mój system operacyjny nie powinien mieć znaczenia.

    UC jakiego używam to atmega 328p.

    Co chce osiągnąć?
    przesyłanie niewielkich danych z telefonu do mikrokontrolera w celu zdalnego sterowania wielokanalowego jakimś urządzeniem.

    Co już mam?
    sprawny hc-05
    działający dwukierunkowy konwerter poziomów logicznych (3.3-5v)
    Programator usbASP I eclipse z wtyczka
    Bluetooth terminal i roboremo na smartfonie

    Moduł hc-05 bez problemu paruje się i łączy z telefonem. Po zawarciu że sobą pinów rxd I txd odsyła wysłane dane do telefonu. W terminalu jako tekst, jak i w roboremo po ustawieniu dwóch suwakow z takim samym id - przesuwając jeden, przesuwa się też drugi.

    W czym jest problem?
    inicjalizacja w mikrokontrolerze. Powiedzmy, że chciałbym osiągnąć to samo co przy zawarciu rxd z txd, tylko przez UC
    . Dalej już sobie poradzę. Niech mikrokontroler odbierze dane, zapisze w zmiennej i odeśle z powrotem.

    O ile z ADC poradziłem sobie używając noty, o tyle z UART mam problem. Jakoś ciężko mi to idzie. Co ciekawe, w nocie są gotowe kody do inicjalizacji, wysłania i odbioru danych. Tylko po zrobieniu kopiuj-wklej kod nie chce się kompilowac.

    Jak się domyślam, dla niektórych na tym forum będzie to kwestia pięciu minut. Chciałbym jakiegoś gotowca, żeby mieć bazę. Tylko inicjalizacja, wysłanie i odebranie danych. Wolałbym też póki co uniknąć przerwan, jeżeli taka możliwość istnieje.

    Nie wiem też, czy mogę np wykorzystać poradniki dotyczące rs232 albo UART przez WiFi, czy jest jakaś różnica. Szkoda mi całego dnia oglądania poradników żeby sprawdzić, że rs 232 nie ma nic wspólnego z komunikacją przez hc-05.

    Kod który mam teraz(nie kompiluje się)

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Co zwraca kompilator:

    Kod:
    23:56:28 **** Incremental Build of configuration Release for project testy ****
    make all
    Building file: ../.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
    Invoking: AVR Compiler
    avr-gcc -I/home/bartosz/projekty/avr/libs -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega328p -DF_CPU=1000000UL -MMD -MP -MF".metadata/.plugins/org.eclipse.cdt.make.core/specs.d" -MT".metadata/.plugins/org.eclipse.cdt.make.core/specs.o" -c -o ".metadata/.plugins/org.eclipse.cdt.make.core/specs.o" "../.metadata/.plugins/org.eclipse.cdt.make.core/specs.c"
    Finished building: ../.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
     
    Building file: ../main.c
    Invoking: AVR Compiler
    avr-gcc -I/home/bartosz/projekty/avr/libs -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega328p -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
    ../main.c: In function 'zero':
    ../main.c:16:2: warning: implicit declaration of function 'USART_Init' [-Wimplicit-function-declaration]
      USART_Init(MYUBRR);
      ^~~~~~~~~~
    ../main.c: At top level:
    ../main.c:18:6: warning: conflicting types for 'USART_Init'
     void USART_Init( unsigned int ubrr)
          ^~~~~~~~~~
    ../main.c:16:2: note: previous implicit declaration of 'USART_Init' was here
      USART_Init(MYUBRR);
      ^~~~~~~~~~
    ../main.c: In function 'USART_Init':
    ../main.c:21:2: error: 'UBRR0H' undeclared (first use in this function)
      UBRR0H |= (unsigned char)(ubrr>>8);
      ^~~~~~
    ../main.c:21:2: note: each undeclared identifier is reported only once for each function it appears in
    ../main.c:22:2: error: 'UBRR0L' undeclared (first use in this function)
      UBRR0L |= (unsigned char)ubrr;
      ^~~~~~
    ../main.c:24:2: error: 'UCSR0B' undeclared (first use in this function)
      UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
      ^~~~~~
    ../main.c:24:16: error: 'RXEN0' undeclared (first use in this function)
      UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
                    ^~~~~
    ../main.c:24:27: error: 'TXEN0' undeclared (first use in this function)
      UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
                               ^~~~~
    ../main.c:26:2: error: 'UCSR0C' undeclared (first use in this function)
      UCSR0C |= (1<<USBS0)|(1<<UCSZ00);
      ^~~~~~
    ../main.c:26:16: error: 'USBS0' undeclared (first use in this function)
      UCSR0C |= (1<<USBS0)|(1<<UCSZ00);
                    ^~~~~
    ../main.c:26:27: error: 'UCSZ00' undeclared (first use in this function)
      UCSR0C |= (1<<USBS0)|(1<<UCSZ00);
                               ^~~~~~
    make: *** [subdir.mk:20: main.o] Błąd 1

    23:56:30 Build Finished (took 2s.199ms)



    Ostatnio edytowano 23 gru 2017, o 23:58 przez bartoszp1992, łącznie edytowano 3 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 gru 2017, o 02:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 lip 2017
    Posty: 140
    Pomógł: 6

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    daj nad wszystkim



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 gru 2017, o 11:48 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    No i jeszcze należałoby zmienić kolejność funkcji USART_Init() i zero():
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    lub alternatywnie dać deklarację funkcji USART_Init() przed funkcją zero():

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO