ciao ragazzi
dopo un po' di lavoro sono riuscito a mandare il pin 13 a 400hz tramite timer1
vi sarei grato se deste un'occhiata soprattutto ai commenti visto che ho avuto difficoltà a scrivere anche quelli visto che il funzionamento mi è ancora un po' poco chiaro...
#include <avr/io.h>
#include <avr/interrupt.h>
void _exit(int status) {
}
int main(void)
{
DDRB = 0b00100000; // imposta pb5 pin 13 arduino come output
OCR1A = 624; // 2500micros @ 16mhz prescaler 64, 400hz
TCCR1B |= (1 << WGM12); // comparazione con OCR1A
TIMSK1 |= (1 << OCIE1A); //interrupt quando raggiunto OCR1A
TCCR1B |= (1 << CS11) | (1 << CS10); //prescaler 64
sei(); //abilita interrupt
while (1);
{
}
}
ISR (TIMER1_COMPA_vect) //interrupt su comparazione OCR1A
{
PORTB = PORTB ^ 0b00100000; //inverte stato pb5 pin 13 arduino
}
altra cosa che non capisco è perchè senza il void_exit su gcc non compila mentre da ide arduino si...