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



Teraz jest 27 lip 2026, o 19:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: Atmega 8 max485
PostNapisane: 27 lis 2014, o 00:46 
Offline
Nowy

Dołączył(a): 19 lis 2014
Posty: 3
Pomógł: 0

Witam,
Postanowiłem zrobić mój pierwszy projekt oparty o AVR-a i zdecydowałem się na komunikację pomiędzy Atmega8 a PC wykorzystując rs485.
Połączenie wygląda tak : pc -->rs232/rs485 ---- > max485---->Atmega8.
Poniżej użyty kod, wzorowałem się na przykładach.

Kod:
 



Do sterowania wysyłaniem wykorzystuję port PB0. Port PC0 to dioda do debugowania.
Atmega8 z wewnętrznym rezonatorem 8MHz.
Po uruchomieniu programu dioda sygnalizuje pracę ale nie mogę nawiązać komunikacji na porcie com. Używam RealTerm i brak jest jakiejkolwiek komunikacji.

Proszę o pomoc w rozwiązaniu problemu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 02:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sie 2013
Posty: 137
Lokalizacja: śląskie
Pomógł: 13

Pierwsza sprawa to Kolego popraw wstawienie kodu zgodnie z zasadami forum,link: topic7402.html
wtedy lepiej go czytać.
Wyrzuć też ze swojego kodu: #define F_CPU 8000000 tego już się nie stosuje. (normalnie w oczy razi)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 07:57 
Offline
Nowy

Dołączył(a): 19 lis 2014
Posty: 3
Pomógł: 0

Poprawiłem zgodnie z sugestią

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2014, o 17:25 
Offline
Nowy

Dołączył(a): 19 lis 2014
Posty: 3
Pomógł: 0

Poprawiłem kod i podłączenia i teraz mam nawiązane połączenie z procesorem.
Problem polega teraz na tym że nie każdy poprawnie wysłany znak 'A' otrzymuję odpowiedź z procesora.
Czy to może być spowodowane brakiem zewnętrznego kwarca ?? Czy może jeszcze mój program nie jest prawidłowy ??

Poniżej listng

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2014, o 21:45 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Program można znacznie uprościć. Nie musisz mieć dodanych opóźnień, ale po wpisaniu do rejestru nadawczego należy sprawdzać flagę TXC, która informuje o wysłaniu bajtu w świat. Flaga UDRE informuje, że bufor nadawczy został opróżniony i teraz bajt jest w wyjściowym rejestrze przesuwnym, ale nie gwarantuje to jeszcze, że został już wysłany.
Jak ustawiona zostanie flaga, że coś zostało odebrane to nie ma sensu czekać na zakończenie odbioru. Linie A należy podciągnąć do plusa a linie B do GND w urządzeniu, które pełni rolę mastera inaczej po zwolnieniu linii przez wszystkie urządzenia będą pojawiać się śmieci co w połączeniu z oczekiwaniem na zakończenie odbioru w twojej funkcji powoduje pewnie odbieranie śmieci, które pojawiają się zaraz za znakiem 'A'
Proponuję takie poprawki:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO