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 w 2025? 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 kwi 2025, o 10:12


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
    Autor Wiadomość
    PostNapisane: 20 lis 2014, o 07:44 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Witam!
    Ostatnimi czasy męczę się z takim problemem. Mianowicie chce przesłać bajt danych z Mastera do Slave'a i następnie żeby ten Slave wyświetlił otrzymaną wartość na terminalu. Przesyłanie danych po spi działa dobrze tylko problem polega na tym ze jak chce później wyświetlić to na terminalu to wyskakuja zupełnie inne dane. Proszę o pomoc.
    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.

    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.

    Dodam tylko że gdy wysyłam dane z atmegi przez rs232 to wszytko działa poprawnie jest tylko problem żeby otrzymaną wartość przez spi wysłać przez rs232.
    Pozdrawiam



    Ostatnio edytowano 20 lis 2014, o 09:42 przez mati7828, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lis 2014, o 09:03 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    Mati a może by tak trzymać się ustalonych zasad wstawiania kodu przes syntax c?
    Proszę wyedytuj posta i popraw.
    Będzie się zdecydowanie lepiej czytało.

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lis 2014, o 15:51 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Zauważyłem ze bajt jest wysyłany przez rs232 ale wyswietlaja się na terminalu jako znaki ASCII. Jak to zmienić??



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lis 2014, o 16:57 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    No i tak się mają wyświetlać.
    Przecież to terminal.

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lis 2014, o 12:22 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Witam ponownie!
    Pojawił się kolejny problem. Chcę wysłać kilka bajtów po spi a kompilator podreśla mi linijke send_spi_buf(a); i wyświetla się komunikat passing argument 1 of 'send_spi_buf' makes pointer from integer without a cast

    Oto kod:
    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lis 2014, o 12:28 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    To w jaki sposób przesłać wartość większa od 255 która zajmuje więcej jak jeden bajt?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lis 2014, o 08:36 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Po wykonaniu powyższych instrukcji nadal jest coś nie tak. Dodałem bibliotekę <stdlib.h>.
    Oto mój kod:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Linijka send_spi_buf(wynik); jest podświetlana na czerwono i wyświetla komunikat: too few arguments to function 'send_spi_buf'



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lis 2014, o 12:39 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Teraz podkreśla na żółto i wyswietla się pointer targets in passing argument 1 of 'send_spi_buf' differ in signedness



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lis 2014, o 12:57 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    Bufor:
    mati7828 napisał(a):
    char wynik[]=" ";


    funkcja
    mati7828 napisał(a):
    void send_spi_buf(uint8_t *buf, uint8_t len)


    uint8_t to alias na unsigned char.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2014, o 21:50 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    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.


    Zmieniłem uint8_t na unsigned char i nadal w linijce send_spi_buf(wynik); // taki błąd i podkrelsenie na czerwono: too few arguments to function 'send_spi_buf'



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lis 2014, o 23:23 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    mati7828 napisał(a):
    uint8_t na unsigned char

    uint8_t to to samo co unsigned char więc nic żeś nie zmienił.
    Ty masz dostosować typ bufora (czyli tablicy wynik) do typu pierwszego parametru funkcji send_spi_buf.

    Temczasem komunikat prawi o całkiem innym błędzie:

    mati7828 napisał(a):
    send_spi_buf(wynik); // taki błąd i podkrelsenie na czerwono: too few arguments to function 'send_spi_buf'

    Rozumiesz co tam jest napisane? Nie? Jednak się postaraj:
    Wywołanie funkcji jest:

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

    to ile trzeba argumentów, a ile ty dajesz?

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2014, o 15:19 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Niestety nie mam pojęcia jak się za to zabrać :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2014, o 15:31 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    mati7828 napisał(a):
    Niestety nie mam pojęcia jak się za to zabrać :(

    Dlatego warto jak sam widzisz zacząć jednak od PODSTAW, czyli np: przeczytać to:

    http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

    gwarantuję ci, że po przeczytaniu np rozdziałów o funkcjach przestaniesz mieć problemy z zabieraniem się za "TO"

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2014, o 17:37 
    Offline
    Użytkownik

    Dołączył(a): 09 mar 2014
    Posty: 50
    Pomógł: 0

    Przeczytałem tą książkę od deski do deski ale musiałem niestety zwrócić ja do biblioteki



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2014, o 17:41 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    mati7828 napisał(a):
    Przeczytałem tą książkę od deski do deski ale musiałem niestety zwrócić ja do biblioteki

    A to masz takie zdolności - że zapamiętujesz książki w całości po ich jednorazowym albo nawet dwu-razowym przeczytaniu ? ;) nieźle nieźle ... no ale jednak "parę" rzeczy co najmniej umknęło co? Spróbuj wypożyczyć jeszcze raz i jak mówię - poświęć trochę czasu na rozdział o funkcjach i o typach danych bo to na razie u ciebie jak widać mocno leży i ciężko będzie ci dalej iść bez tej wiedzy

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lis 2014, o 22:05 
    Offline
    Nowy

    Dołączył(a): 26 lut 2014
    Posty: 21
    Pomógł: 2

    Antystatyczny napisał(a):
    a spróbuj tak: send_spi_buf(wynik, sizeof(wynik));


    Ja nie jestem guru w C ale jak ja miałem problem z prawidłowym obliczaniem długości stringa to pouczano ( ;) ) mnie, żeby w C obliczać długość w taki sposób:

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


    może tu jest pies pogrzebany



    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: 16 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 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