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



Teraz jest 28 lis 2024, o 22:09


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 ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Składnia: [ Pobierz ] [ Ukryj ]
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 ]
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 ]
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: 27314
Lokalizacja: Szczecin
Pomógł: 1041

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: 27314
Lokalizacja: Szczecin
Pomógł: 1041

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 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