RE: atmega 128, usart0



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "jfk" <jotefka_at_nospam_poczta.fm>
Subject: RE: atmega 128, usart0
Date: Wed, 12 May 2004 13:03:10 +0200


Witam

tranmisja juz mi chodzi :-) i nawet na przerwaniach.
Ale mam taki problem :
Jezeli funkcja zapisujaca dane do bufora nadawczego uzywa takie makra :
#define DisableTX0_ISR() {cli();uint8_t ucByte = inb( UCSR0B ); ucByte &=
~_BV(TXCIE);UCSR0B = ucByte;sei();}

#define EnableTX0_ISR() {UCSR0B |= _BV(TXCIE);sei();}

to program nie dziala.

A jezeli uzywa

#define DisableTX0_ISR() cli()

#define EnableTX0_ISR() sei()

to dziala znakomicie.

Jak powinno sie wylaczac i wlaczac przerwanie od TX complete ???

jfk



========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: atmega 128, usart0
Date: Wed, 12 May 2004 19:44:32 +0200


Wed, 12 May 2004 13:03:10 +0200, na pl.misc.elektronika, jfk napisał(a):

Jak powinno sie wylaczac i wlaczac przerwanie od TX complete ???

Zawsze uzywalem z powodzeniem najzwyczajniejszych ( to wprawdzie dla
pustego bufora, nie bardzo wiem czemu uzywasz TXcomplete - czy to 485 ? )

#define ENABLE_TXD UCSRB |= _BV(UDRIE)
#define DISABLE_TXD UCSRB &= ~(_BV(UDRIE))



--
Pozdrowienia
Jurek Szczesiul

========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.ipartners.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai