CodeVisionAVR UART przerwanie

Jun 14, 2005 4 Replies

Witam.



Dlaczego poniższe przerwanie nie działa dla AT90S2313 w CodeVisionAVR Evaluation:



char c; interrupt [UART_RXC] void usart_rx_isr (void) { c=UDR; } #asm("sei")



Czy:


  1. jest źle napisane?
  2. potrzeba podłączyć jakiś dodatkowy przewód oprócz RX?
  3. trzeba jakoś je specjalnie obsłużyć?
  4. Wersja Evaluation nie obsługuje przerwań?

Z góry zaznaczam że program bez przerwań działa. ... c=getchar(); putchar(~c); ...



Z góry dziękuję za wszystkie mądre odpowiedzi.



uC PC napisał(a):

nie znam składni CodeVision, ale bez włączonego bitu RXCIE w rejestrze UCR to raczej nie ma prawa zadziałać.

w.

A może Pan coś więcej powiedzieć na temat tego bitu, za co on jest odpowiedzialny?

1.przeczytaj pdf'a do tego ukladu, albo chociaz sam rozdzial o uarcie; 2.pewnie jest odp. za odblokowanie przerwania rx'a;

U¿ytkownik "uC PC" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@newsgate.onet.pl...

<CUT>

A nie pro¶ciej odpaliæ w CVAVR Code Generator i wygenerowaæ od razu dzia³aj±cy kod z przerwaniami? Po to zosta³ tam w³a¶nie umieszczony. CVAVR mo¿na traktowaæ prawie jak BASCOM - ktokolwiek znaj±cy absolutne podstawy C mo¿e bez problemu napisaæ dzia³aj±cy (i to dzia³aj±cy dobrze) program. Do tego posiada masê bibliotek do ró¿nych peryferiów. Gdyby tak jeszcze by³ darmowy... no, ale nie ma rzeczy doskona³ych ;)

Fishman

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required