Jak rozwiązać problem z przesyłaniem danych przez USART w trybie synchronicznym na ATMega?

ATMega i wysylanie przez USART





Poprzedni Następny
Wiadomość
Spis treści
From: "Dariusz Zolna" <abc_at_nospam_abc.com>
Subject: ATMega i wysylanie przez USART
Date: Mon, 2 Aug 2004 19:03:35 +0200


Mam następujący (i mocno dziwny) problem:
Przy łączeniu się w trybie synchronicznym z PC, dane są przesyłane tylko w
kierunku do mikrokontrolera. W trybie asynchronicznym używającym przerwań
wszystko jest ok.
Co może być przyczyną?

Funkcje obsługi USART są standardowe, wzięte żywcem z dokumentacji Atmela:

static uint8_t RxChar(void)
{
while( !(UCSRA & (1<<RXC)) );
return UDR;
}

static void TxChar(uint8_t x)
{
while(!(UCSRA & (1<<UDRE)))
UDR = x;
}

static inline void initComm(void)
{
outp((unsigned char)0, UBRRH);
outp((unsigned char)103, UBRRL); // 9600 baud _at_nospam_ 16MHz

UCSRB = (1<<RXEN)|(1<<TXEN);
// 8-bit, 2 stop bits
UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1);
}



Darek Żołna



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

Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anokWYTNIJ_at_nospam_ceti.pl>
Subject: Re: ATMega i wysylanie przez USART
Date: Tue, 3 Aug 2004 02:38:21 +0200


Użytkownik "Dariusz Zolna" <abc_at_nospam_abc.com> napisał w wiadomości
news:cels6v$st9$1_at_nospam_atlantis.news.tpi.pl...
Mam następujący (i mocno dziwny) problem:
Przy łączeniu się w trybie synchronicznym z PC, dane są przesyłane tylko w
kierunku do mikrokontrolera. W trybie asynchronicznym używającym przerwań
wszystko jest ok.
Co może być przyczyną?
...

znaczy jak zawolasz TxChar(uint8_t x)
to nie dochodzi znak do PC'ta ?

a zwisa na tym TxChar czy nie ?

--
Andrzej





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

Poprzedni Następny
Wiadomość
Spis treści
From: "Dariusz Zolna" <abc_at_nospam_abc.com>
Subject: Re: ATMega i wysylanie przez USART
Date: Tue, 3 Aug 2004 02:40:48 +0200


Użytkownik "Andy" <anokWYTNIJ_at_nospam_ceti.pl> napisał:
znaczy jak zawolasz TxChar(uint8_t x)
to nie dochodzi znak do PC'ta ?

Tak, nie dochodzi.

a zwisa na tym TxChar czy nie ?

Nie zwisa, dlatego to jest dziwne.

Ale przepisałem program od nowa, teraz wszystko chodzi w obie strony,
problem był gdzieś w "makefile" z adresami segmentów kodu - część była w
sekcji bootloadera, część w sekcji programu głównego. Teraz wszystko jest w
sekcji bootloadera i komunikacja działa, ale pojawił się problem z zapisem
do pamięci programu. Niby się zapisuje, porównuję to co zapisane z tym co
powinno być i jest ok, ale PonyProg odczytuje tylko "FF".

Darek Żołna



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