Pawel K
Guest
Thu Apr 12, 2007 5:24 pm
Witam,
chcialem wykozystac dobrodziejstwo transmisji szeregowoj
wykozystyjacej przerwania i zaczynaja sie schody. ATMEGA128
na 100% wylaczony tryb 103ki !!
Przejzalem wiele przykladow i nic mi to nie rozjasnilo mojego
problemu.
Stowrzylem bufor, zapisalem do niego dane, zainicjowalem
transmisje:
if (Uart0Status == Tx_Busy || data == NULL) return false;
else {
TxPtr = data;
TxPPtr = (uint8_t *)data;
TxLen = 0;
Uart0Status = Tx_Busy;
UCSR0B |= _BV(UDRIE0);
}
w przerwaniu juz wycialem wszystko zeby wyeliminowac
wszelkie bledy i wyglada tak:
SIGNAL(SIG_UART0_TRANS){
UCSR0B &= ~_BV(UDRIE0);
Uart0Status = Tx_Ready;
}
kozystam jeszcze z 3ech przerwan:
zewnetrzengo generowanego przez RTC co 1 sek,
TIMERA0 do odczytu klawiatury oraz TIMERA1 w trybie PWM.
Dodam ze mam wachdoga ustawionego na 2 sek. Resetowany jest
w przerwaniu wywolywanym przez RTC co 1 sek.
Problem z uartem polega na tym ze zawiesza mi caly uklad.
Watchdog resetuje uklad po 2 sek po czym znowu zwisa .... i tak w kolko.
Prosze o jakies sugestie ...
pozdrawiam
Pawel K
Jurek Szczesiul
Guest
Thu Apr 12, 2007 6:11 pm
Thu, 12 Apr 2007 18:24:10 +0200, na pl.misc.elektronika, Pawel K
napisał(a):
Quote:
UCSR0B |= _BV(UDRIE0);
SIGNAL(SIG_UART0_TRANS){
Włączasz przerwanie "data register empty interrupt"
a obsługujesz
"transmit complete interrupt"
- to dwie oddzielne rzeczy.
Brak obsługi SIG_UART_DATA powoduje ciągły przeskok
( avrgcc) do obsługi bad interrupt - czyli w praktyce do ciągłego resetu
tak jak u siebie obserwujesz.
--
Pozdrowienia
Jurek Szczesiul
Pawel K
Guest
Fri Apr 13, 2007 3:17 pm
Jurek Szczesiul napisał(a):
Quote:
Thu, 12 Apr 2007 18:24:10 +0200, na pl.misc.elektronika, Pawel K
napisał(a):
UCSR0B |= _BV(UDRIE0);
SIGNAL(SIG_UART0_TRANS){
Włączasz przerwanie "data register empty interrupt"
a obsługujesz
"transmit complete interrupt"
- to dwie oddzielne rzeczy.
Brak obsługi SIG_UART_DATA powoduje ciągły przeskok
( avrgcc) do obsługi bad interrupt - czyli w praktyce do ciągłego resetu
tak jak u siebie obserwujesz.
Dzieki pomoglo.
Wstyd przyznac, ale pisalem to majac przed oczami Panski
artykul w EP

nie ma to jak kontakt "bezposredni"
pozdrawiam
Pawel K