joni55 napisał(a):
Hej,
Usiadłem do tego dzisiaj na cały dzień. Wywaliłem BTM'a, a zamiast tego podpiąłem kabel z rs232.
Niestety, problem jest wciąż ten sam. Nie widzę ani jednego znaczka w putty, a program zawiesza się w pętli
Kod:
// pętla oczekuje jeżeli brak miejsca w buforze cyklicznym na kolejne znaki
while ( tmp_head == UART_TxTail ){}
Wiem jednak teraz, że to nie problem BTM'a, a mojej komunikacji.
Czy jest coś, co jeszcze moglibyście mi doradzić? Albo ma ktoś może już kod wypluwający w najprostszy i najkrótszy sposób cokolwiek na UART'a, który NA PEWNO działa na Atmedze 8? Pozwoliłoby mi to wyeliminować kolejne możliwe źródło problemu.
Jeszcze raz bardzo proszę o jakieś sugestie, co z tym zrobić.
Przecież działający kod masz na płycie dołączonej do książki.
Co prawda nie jest na m8... ale to już bardzo krótka droga
------------------------ [ Dodano po: 16 minutach ]Skoro nie chce Ci działać to może najpierw nawiąż najprostsze połączenie przez RS
żeby to zrobić musisz:
1. zainicjować UART'a (to chyba masz) funkcja
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
2. wysyłać jakieś znaki do terminala. żeby to zrobić bierzesz w łapki note do m8 i tam w rozdziale USART (str. 129 i następne) szukasz podrozdziału "Data Transmission
– The USART Transmitter" (str. 136)
A tam masz przykład w ASM i w C. Ten w C jest taki:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zapewniam Cię, że ten przykład dla m8 działa.
Ale... w terminalu i w m8 musisz mieć tak samo ustawione parametry transmisji czyli:
1. format ramki (zwykle 8n1)
2. prędkość transmisji.
No i jeszcze jedna drobnostka... sprawna przejściówka poprawnie podłączona do procka i do komputera. A w komputerze poprawnie wybrany port.