ATmega32 i rs232

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
doctor
-
Posty: 9
Rejestracja: 24 lip 2006, 18:06
Lokalizacja: Tarnowskie Gory

ATmega32 i rs232

Post autor: doctor » 05 paź 2006, 12:34

Witam serdecznie.Krotko.
ATmega32 caly czas wysyla ten sam znak, chcialbym go odebrac po stronie PC.
Ale w hyperterminalu mam same krzaczki. Sam pisalem program w C++ z uzyciem ComPort, ale czesto wywala FrameErroe.To pewnie przez zerowy bit stopu.
Hexa wrzucam ispprog, mam tez pony prog. Prosze o pomoc

aha, zegar 18.432MHz
Pozdrawiam

w zalacznikach mam konfiguracje fusebits oraz to co odebral hyperterminal
Załączniki
FuseBits.jpg
FuseBits
FuseBits.jpg (47.34 KiB) Przejrzano 3345 razy
hyperterm.jpg
dane przechwycone przez Hyperterminal
hyperterm.jpg (92.66 KiB) Przejrzano 3345 razy
kod.jpg
kod programu
kod.jpg (45.62 KiB) Przejrzano 3345 razy

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 09 paź 2006, 1:17

W przedstawionym programie moje podejrzenia budzi ustawianie szybkości transmisji. Dla 18.432MHz oscylatora należy do UBRR wpisać 119 a nie 9600 (co jak rozumem ma być prędkością transmisji).

doctor
-
Posty: 9
Rejestracja: 24 lip 2006, 18:06
Lokalizacja: Tarnowskie Gory

Init?

Post autor: doctor » 09 paź 2006, 11:28

Rzeczywiscie, chyba masz racje co do inicjacji USARTa. sprawdze to dzis. Natomiast pytanie o funkcje USART_Transmit. Ona wysyla chary.Czyli zeby wyslac np. 5 (int) to trzeba dac USART_Transmit((char)5) ?
Chyba tak, Bo jak zwarlem piny Rx i TX na porcie COM to w hiperterminalu pojawialy mi sie 2 znaki na raz te same, np aabbcc ... Korzystam z komponentu ComPort. Tam sa nastepujace metody do odczytu portu:
ReadChar, ReadString i ReadLine. Czym sie roznia 2 pierwsze, bo raczej tylko one mnie interesuja?

Pozdrawiam[/list]

[ Dodano: 2006-10-21, 14:28 ]
WItam ponownie
komunikacja dziala, nalezy uwaznie dobierac wartosc kwarcu. teraz mam 8MHz.Blad jest 0.2%. Jedna uwaga bo funkcja USART_Transmit mozna wysylac tylko char. Na pozostalych typach nalezy wykonac rzutowanie.

Pzodrawiam
doctor

ODPOWIEDZ