-
11. Data: 2011-06-06 01:05:06
Temat: Re: atxmega32a4, przerwania USART i resetowanie uC...
Od: Martin Lukasik <m...@m...pl>
On Jun 5, 10:17 pm, "Marcin Wasilewski" <j...@a...pl> wrote:
> A niezdefiniowane wektory gdzie maj skok? Zr b procedur obs ugi przerwania
> np. zapalaj c diod na nieu ywanym porcie. I przekieruj na t procedur
> wszystkie wektory od nieu ywanych przerwa . Je li stan diody si zmieni, to
> znaczy, e wywo ujesz (masz niezamaskowane) jakie przerwanie, kt rego
> obs ugi nie przewidzia e .
> Jak nie pomo e odepnij linie RX i TX od MAX232 i je po cz na kr tko. To co
> nadasz znajdzie si w buforze, zobacz czy procek wtedy te si resetuje, bo
> mo e to nie przerwania, tylko co z napi ciami masz nie tak. Nast pnie podaj
> na MAX232 sta y sygna i zobacz jakie masz napi cie na wyj ciu.
Podpiąłem RX i TX na krótko, i problem był dalej.
Później zrobiłem tak jak piszesz -- wpakowałem diody na port,
ustawiłem te 93 wektory, żeby zaświecały diody... :-) i doszedłem do
problemu!!!
Było to nieobsługiwane przerwanie! Jakie? External interrupt on PORTE.
Z UARTinit():
PORTE.INTCTRL = 0x01; // set interrupt0 low level
PORTE.INT0MASK = 0x04; // set pins 3 and 2 for as a source for
interrupt
Jako, że książek o xmega na oczy nie widziałem, to przenoszę się z
mega przy pomocy tutorialów. I w jednym cudownym było właśnie
powyższe, co durnie przepisałem, myśląc, że tak ma być.
Tylko ta linia jest za to odpowiedzialna:
port->CTRLA = USART_RXCINTLVL_LO_gc | USART_TXCINTLVL_LO_gc;
Działa teraz przecudownie, zmarnowałem na to 2 dni... ale hej, w sumie
czegoś się nauczyłem!
WIELKIE DZIĘKI Marcin za podpowiedź i całej reszcie za pomoc!
Dobranoc,
m.