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