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



Teraz jest 23 sty 2025, o 10:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 5 paź 2016, o 12:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Witam,

zaczynam zabawę z raspberry pi, pierwsze co chciałem zrobić to odpalić na malinie wyświetlacz graficzny do którego pisałem bibliotekę pod Atmegę.
Przy przeportowaniu natrafiłem na problem którego nie potrafię rozwiązać:

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


Wysyłanie danych - łatwo i przyjemnie, zmienna do rejestru, czekanie na znak i koniec.

Niestety w malinie tak to nie wygląda, do wysłania danych chcę użyć funkcji z biblioteki wiringpi:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak zmienną typu unsigned int przesłać funkcją oczekującą stringa ?

ps: wiem że to nie forum o RPi, ale liczę na to że znajdzie się ktoś kto pomoże.

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2016, o 12:29 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Próbowałeś jawnego rzutowania tej zmiennej na char i dodać null na końcu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2016, o 12:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

nie, nie bardzo wiem jak miało by wyglądać doddanie null ?

------------------------ [ Dodano po: 3 minutach ]

nie, nie bardzo wiem jak miało by wyglądać doddanie null ?

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2016, o 14:01 
Offline
Użytkownik

Dołączył(a): 25 lip 2015
Posty: 140
Zbananowany użytkownik

Pomógł: 18

Witaj, oryginalna funkcja z AVR moim zdaniem powinna przyjmować argument typu char, a nie int. Ale to mniej istotne.

W przypadku Rpi, funkcja nie oczekuje string'a, ani tym bardziej cstring'a, tylko oczekuje tablicy zawierającej zmienne typu char. I nie należy jej kończyć pustym znakiem '\0'.

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

Za x podstawiasz numer kanału.

Ale najlepiej by było, gdybyś tak zmienił swój oryginalny program, aby do tej funkcji z Rpi przekazywał całe tablice danych, bo zazwyczaj pewnie wysyłasz więcej niż 1 bajt.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2016, o 17:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

ok zmieniłem typy argumentów w oryginalnych funkcjach na unsigned char.
Treaz funkcja do wysyłania bajtu wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


program się kompiluje, ale jak klikam build to wywala błąd:
Hello.c:(.text+0xc): undefined reference to `LCD_init'


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


wcześniej taki sam błąd wywalało odnośnie funkcji z wiringpi ale jak dodałem komendę do ustawień kompilacji to poszło:
gcc -Wall -c "%f" -l wiringPi
nie wiem jak dodać do tego swoją bibliotekę

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2016, o 18:20 
Offline
Użytkownik

Dołączył(a): 25 lip 2015
Posty: 140
Zbananowany użytkownik

Pomógł: 18

Linker nie może znaleźć funkcji LCD_Init(). Gdzie masz dołączony nagłówek zawierający definicje funkcji przeznaczonych do obsługi LCD?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2016, o 19:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Sparrow-hawk napisał(a):
Gdzie masz dołączony nagłówek zawierający definicje funkcji przeznaczonych do obsługi LCD?


w pliku: NOVITUS_graphic_display_library.h

wygląda on tak:

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

_________________
sig on ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO