[Mikropascal]Konfigurowanie USART

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
NeooeN
-
Posty: 1
Rejestracja: 13 wrz 2009, 16:23
Lokalizacja: Polska

[Mikropascal]Konfigurowanie USART

Post autor: NeooeN » 13 wrz 2009, 16:42

Witam!
Chciałbym prosić o pomoc w skonfigurowaniu USART'a w mikropascalu. Chce uzyskać możliwość odbioru sygnału o prędkości 250 000 bodów z jednym bitem startu i dwoma stopu. Mój proc to ATMega16 taktowana oscylatorem 8MHz więc UBRR będzie równy 1. Dalej mam problem z ustaleniem wartości dla konkretnych rejestrów. W dokumentacji jest taki kod:

Kod: Zaznacz cały

UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC=(1<<URSEL)|(1<<USBS)|(3<<UCSZ0)
Podobno ma on włączać nadajnik i odbiornik (pierwsza linia) i ustawiać ramke na 8 bitów danych i dwa bity stopu. O ile udało mi sie przepisać ten kod i wyszło mi coś takiego:

Kod: Zaznacz cały

  UCSRB.RXEN := 1;
  UCSRB.TXEN := 1;
  
  UCSRC.URSEL :=1;
  UCSRC.UCSZ0 :=3;
  UCSRC.USBS :=1;
to potem mam problem z ustaleniem prędkości. W dokumentacji wygląda to tak:

Kod: Zaznacz cały

UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr
Tutaj nie mam pojęcia w jaki sposób to zapisać w mikropascalu, kompilator zwraca błąd, twierdzi że nie ma czegoś takiego jak UBRRH i ubrr. Pytanie jest następujące, w jaki sposób zmusić USART do odbioru dodatkowo bitu startu (kod ustawia tylko 2 stopu) i w jaki sposób wpisać do rejestrów moją prędkość?
Będe bardzo wdzięczny za wszelką pomoc!

ODPOWIEDZ