ATNEL tech-forum
https://forum.atnel.pl/

Bufor cykliczny Atmega128 Nadawanie
https://forum.atnel.pl/topic21536.html
Strona 1 z 1

Autor:  chi.cygni [ 6 lis 2018, o 14:21 ]
Tytuł:  Bufor cykliczny Atmega128 Nadawanie

Kłaniam się Kolegom,

Z trudem, ale w miarę systematycznie, przyswajam wiedzę z Mirkowego Bluebook'a, napotykając problemy, które następnie dzięki Kolegom z Forum są przezwyciężane.
Tym razem padło na UART i bibliotekę MKUART.

Próbowałem ją przystosować do Atmega128 (na ATB Shield M128) i na początek spróbować coś wysłać na Putty.
Tak zrobiłem:
1. UART_TxBuf zdefiniowany
2. USART_Init jak poniżej:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

4. Funkcje uart_putc oraz uart_puts niezmieniane
5. Wektor przerwania następujący:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oczywiście wcześniej ustawione w pliku mkuart.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Jak widać, chcę wysłać string KRUMKRA.
Ale w terminalu dostaję tylko KR. Po resecie też KR

Proszę o wskazówki.
Czy wektor przerwania ISR( USART0_UDRE_vect) dobrze wybrany?
A może inicjalizacja UART niewłaściwa?

Boli mnie to, że chyba nic prostszego być nie może. To nawet nie odbieranie stringa, co pewnie przyniesie mi kolejne bóle.
Zwykłe wysłanie. Ale u mnie nie chce zaskoczyć.

Autor:  mirekk36 [ 6 lis 2018, o 14:26 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

kłania się SAM początek książki o języku C i o pętli głównej programu, bez niej nie ma co ci działać i można wręcz powiedzieć, że twój program zachowuje się prawidłowo.

Autor:  chi.cygni [ 6 lis 2018, o 14:31 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

No dobra, niewiele dostałem, ale dzięki i za to.
Przyjrzę się temu początkowi.

Ale i tak się cieszę, że napisałem pierwszy program, który zachowuje się prawidłowo.

Autor:  mirekk36 [ 6 lis 2018, o 14:34 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

masz pętlę główną w programie ?

Autor:  chi.cygni [ 6 lis 2018, o 16:14 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

Bardzo dziękuję. Pomogło.
Jak zawsze.

Autor:  chi.cygni [ 7 lis 2018, o 15:48 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

Jeśli można, chcę ten wątek kontynuować, bo i moje obecne pytanie mieści się w formule.
Skąd się biorą te pytajniki w Putty po wciśnięciu Reset na uC?
Obrazek

To, że je wysyła uC to i ja wiem, ale dlaczego?
No i przede wszystkim, jak temu zapobiec?

Autor:  mirekk36 [ 7 lis 2018, o 16:20 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

chi.cygni napisał(a):
Skąd się biorą te pytajniki w Putty po wciśnięciu Reset na uC?


Bootloader - no wystarczy obejrzeć PODSTAWOWE poradniki o MkBootloaderze - a przecież nie jest ciężko się tego doszukać bo jest na głównej stronie Atnela

https://atnel.pl/mkbootloader.html

------------------------ [ Dodano po: 1 minucie ]

poza tym skoro co chwilę ci się one pokazują w terminalu to albo sam wciąż resetujesz procka albo coś źle zaprogramowałeś i procek sam się resetuje - bez kodu main.c to można tylko bawić się w jasnowidza

Autor:  chi.cygni [ 7 lis 2018, o 19:14 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

Gdy napisałeś "Bootloader", rzeczywiście przypomniał mi się ten fragment poradnika, gdy była mowa o generowaniu BLS
i informacja, że te znaki pytajnika latają, gdy jeszcze nie ma wgranego programu do pamięci Flash, pod warunkiem, że jest ustanowiona prawidłowa komunikacja.
I te pytajniki tą prawidłową komunikację sygnalizowały.

mirekk36 napisał(a):
(...) a przecież nie jest ciężko się tego doszukać bo jest na głównej stronie Atnela

No żaden problem, absolutnie. Nawet nie trzeba pisać gdzie to jest. Tylko trzeba akurat wiedzieć CO jest problemem, czyli postawić diagnozę.
Lekarstwo się znajdzie. To o diagnozę najtrudniej. Ale mówię o sobie.

mirekk36 napisał(a):
(...) poza tym skoro co chwilę ci się one pokazują w terminalu to albo sam wciąż resetujesz procka albo coś źle zaprogramowałeś i procek sam się resetuje - bez kodu main.c to można tylko bawić się w jasnowidza


Sam ręcami go resetuję, bo ten program to tylko "wyślij te trzy stringi". I na uC jest zainstalowany Bootloader, zatem po RESET ten Bootloader jakoś pewnie czeka na wgranie wsadu (tak myślę) i pewnie on coś wysyła (czyżby: "jestem gotów - dawaj"?). Zatem to najprostsze ćwiczenia. Ale przecież nic nie szkodzi main.c pokazać. Oto on:

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


Ale te napotkane problemy i wyjaśnienia Kolegów na Forum prostują w głowie wiele.

Obejrzę poradnik raz jeszcze, ale już teraz wiem, że mam kilka następnych wątpliwości, czy uwag w tym temacie. Dziękuję za pomoc i życzliwość.

Autor:  mirekk36 [ 7 lis 2018, o 21:52 ]
Tytuł:  Re: Bufor cykliczny Atmega128 Nadawanie

krótko - jeśli nie chcesz tych znaków zapytania to skasuj Bootloader - po prostu programuj procka za pomocą programatora sprzętowego a sam się skasuje bootloader ;) Po co ci on? skoro na razie go nie używasz.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/