ATMega8 i Timer0

Oct 15, 2007 3 Replies

Witam, zapoznaję się z programowaniem mikrokontrolerów z rodziny AVR i o ile z programowaniem bez przerwań jakoś sobie radzę to kiedy dochodzą przerwania zaczynają się schody ;]



Czy mógłby mi ktoś powiedzieć co robię źle? Wszystko działa ładnie, przetwornik dziala, wysyłanie po RSie działa do momentu gdy próbuję dodać timer. Tak to wyliczyłem że powinno dokonywać pomiaru i wysyłać co 1 sek. ale tak się nie dzieje.



############## CODE ############## #include <avr/io.h>



#include <avr/interrupt.h>



#include <avr/sfr_defs.h>



#include "a2c.h" #include "uart.h"


volatile char flag; volatile unsigned int T0_counter;



int main(void) {



TCCR0 |= _BV(CS02) | _BV(CS00); TIMSK |= _BV(TOIE0); SFIOR |= _BV(PSR10); T0_counter=0; flag=0;



uart_init(); a2c_init();



sei();



while (1) { if (flag==1) { T0_counter++; flag=0; }; if (T0_counter>5859) { T0_counter=0; cli(); uart_write(0); uart_write(a2c_convert(0)); sei(); }; // for (i=0;i<60000;i++) { for (j=0;j<6000;y++) { }; }; };



return 0; };



ISR (SIG_OVERFLOW0) { flag=1; } ############## END ##############


Dziękuję za pomoc i pozdrawiam


KeiCi pisze:

A czy ustawisz prawidlowo stos ? Poza tym, przy inicjalizacji Timera proponowal bym zamienic kolejnosc: najpierw skonfigurowac, potem wlaczyc.

TIMSK |= _BV(TOIE0); TCCR0 |= _BV(CS02) | _BV(CS00);

Polecam tez darmowe AVR Studio - mozna symulowac, debugowac na poziomie kodu w C - przydatne narzedzie.

Pozdr AK

AK napisał(a):

Właśnie w Avr Studio piszę. W symulacji jest ok, przerwanie śmiga, zwiększa licznik itd. Po zaprogramowaniu układu już nie działa. Dodałem nawet diódę do wolnego wyjścia - powinna migać co dwie sekundy, ale nie miga ;]

Jak ustawić stos? Project->Conf. options->Memory Settings->Stack Settings?

Pozdrawiam

Problem się rozwiązał. Poprzestawiałem coś w ustawieniach i wektor przerwań nie zaczynał się od początku tylko kilkadziesiąt bajtów dalej. I o ile normalnie nie miało to wpływu na działanie to przy skokach do przerwań program szedł w maliny.

Pozdrawiam

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required