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



Teraz jest 16 kwi 2024, o 05:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 22 maja 2018, o 09:36 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Witam panowie i panie.

Potrzebuje odebrać do 10 znaków przez uart odrazu do tablicy np bufor[10] lub do struktury, nie ma znakow konca nadawania jak /n i /r poprostu kończy wysyłać, jak wsadzić teraz znaki odebrane np pętlą for lub jakos inaczej poprzes funkcje Mirka uart_getc() ; z MKuart?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2018, o 10:08 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Opisz dokładnie w czym rzecz bo nie za bardzo wiem o co chodzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2018, o 10:10 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

I skąd będziesz wiedział że ramka została w pełni odebrana? Ilość znaków, timeout?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2018, o 11:38 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 8
Pomógł: 0

Mało informacji o sytuacji, ale najprostszy sposób na wysyłanie większych danych niż 9 bitów to:
-wykorzystać normalnie UART z biblioteką z BB jako solidny protokół komunikacji;
-podzielić wysyłane 10 bitów danych na pół;
-wysłać dwie ramki danych 6 bitowe;
-pierwszy lub ostatni bit ramki wykorzystać jako informację o sekwencji, np 0 - pierwsza połowa danych, 1 - druga połowa;
-odczytać obie ramki i połączyć dane zgodnie z kolejnością tego bitu.

Możesz użyć większej ramki do bardziej złożonego zapisu sekwencji lub do dodatkowej odporności na błędy.

Pytanie tylko czy Ty możesz wpływać na wysyłany format danych.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2018, o 12:14 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

O się panowie rozpędzili,
Ale tak malo danych, moje skróty myślowe
10 znaków = 10 bajtow,
Normalna transmisja rs232, stan wysoki jako brak transmisji,
Dokladnie transmisja MIDI,

Odbieranie bajtu przez uart_getc() dziala jak trzeba itp ale chce zapisac to do tablicy lub struktury żeby potem te bajty przypisać, bo ta transmisja jest uporządkowana na sztywno wiec parsowac jakos specjalnie nie trzeba.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2018, o 12:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Cytuj:
10 znaków = 10 bajtow,
Normalna transmisja rs232, stan wysoki jako brak transmisji,
Dokladnie transmisja MIDI

Szofer napisał(a):
Odbieranie bajtu przez uart_getc() dziala jak trzeba itp ale chce zapisac to do tablicy lub struktury
Jak masz stałą ramkę to chyba lepiej zrobić odbiór na przerwaniach od razu do tablicy a po jej zapełnieniu ustawienie znacznika dla programu, że dane gotowe. Dzięki temu nie masz blokowania w programie na czekanie na dane oraz nie musisz przepisywać z bufora odbioru do tablicy.
Chyba że dane przychodzą tak szybko, że musisz buforować kilka ramek zanim je obrobisz (niestety nie zagłębiałem się w MIDI ze względu na to słoń mi na ucho nadepnął ;) ).

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2018, o 19:32 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Program ogólnie czeka na akcje z uart lub enkodera, nic wiecej nie ma robic jak narazie, w planach dadatkowe wodotryski ale na to przyjdzie czas, narazie odpalam krok po kroku

Przesłanie 3 bajtow (dokladnie 30 bitów) to w czasie 0.96ms



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