UART i avr-gcc

Sep 30, 2004 2 Replies

W jaki sposób w avr-gcc wysy³aæ/obieraæ znaki przez port szeregowy? tzn. jak go zainicjowaæ, ustaliæ prêdko¶æ. Czy po zainicjowaniu do³±czaj±c standardow± bibliotekê we/wy u¿ywaæ poleceñ typu getchar, putchar, itd. Czy jest odpowiednik getchar, nie wysy³aj±cy echa?



pozdr. ogi



ogi napisał:

Jako przyklad... program wysylajacy przez USART1 znak 0x01 (ATmega128)

#include <avr/io.h>

int main() { // Ustaw baud rate: 230400 kbit/s, XTAL = 7.3728 MHz UBRR1H = (1 >> 8); UBRR1L = 1;

// Inicjalizuj UART // TXEN0 = 1 UCSR1B = _BV(TXEN);

while(1) { // Czy mozna wysylac? if (bit_is_set(UCSR1A, UDRE1)) { UDR1 = 0x01; } }

return 0; }

Pozdrawiam, voice

Na wlasne potrzeby napisalem sobie kilka procedurek asynchronicznej obslugi porty szeregowego. Dziala na ATMedze8535, ale przerobka na inny procesor nie powinna zajac dluzej niz 10 minut. Dlugosci buforow ustawiane sa w makefile Wrzucilem na

formatting link
pzdr. j.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required