Wpis z mikrobloga

#programowanie #jezykc
Muszę napisać sobie program do przesyłu dość sporej ilości danych między komputem i #avr używając portu szeregowego.
Strona obsługi na mikrokontrolerze wykonana i przetestowana za pomocą Br@y terminal + prosty skrypt w pascalu.

Teraz pytanie najważniejsze: Jest jakiś sposób, by wykonać podobny mechanizm typu wektor/przerwanie, czy pozostaje mi odpytywanie portu za pomocą ReadFile? Nigdy wcześniej nie rzeźbiłem nic na Windows, więc pewnie będę musiał trochę jeszcze poczytać.

Potrzebny mi jakiś kod w c, na który mógłbym spojrzeć; ewentualnie jakaś referencja jak coś takiego oprogramować.

Niby coś znalazłem tylko jak to ugryźć, by działało tak, jak ja chcę?
  • 7
@Mirazh: Po stronie kompa organizujesz wysyłane dane w paczki po np. 32 bajty (plus może bajt sumy kontrolnej), wysyłasz to, w avr odbierasz, możesz stosować przerwania skoro i tak wiesz, że odbierzesz 32 bajty i po odebraniu 32 bajtów możesz zwrócić do kompa jakiś bajt kontrolny. Wtedy komp wyśle kolejną paczkę.
Ale avry mają uart full duplex więc nic nie stoi na przeszkodzie zrobić echo (z atmegi nadajesz to co odebrałeś),
@Analityk: Na procku mam wszystko zorganizowane.
Tak w skrócie wysyłam adres, ilość danych w paczce, dane, suma kontrolna crc; procek zwraca znaki sterujące + crc, jak nie, to milczy i jest ponawiana transmisja po czasie ~1s.
W druga stronę transmisja identyczna.
Bufory po 256 bajtów na tx i rx.
Przerwanie w procku mam tylko na RX, gdzie odczytuję bufor.

Obecnie testuję bibliotekę, którą wygrzebałem z google'a. Zobaczymy, co z tego wyjdzie.
Tak w skrócie wysyłam adres, ilość danych w paczce, dane, suma kontrolna crc; procek zwraca znaki sterujące + crc, jak nie, to milczy i jest ponawiana transmisja po czasie ~1s.


@Mirazh: Brawo, właśnie odkryłeś protokół XMODEM ( ͡° ͜ʖ ͡°)