ATMega8 i Timer0

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

Reply to
KeiCi
Loading thread data ...

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

Reply to
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

Reply to
KeiCi

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

Reply to
KeiCi

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.