#include<avr/interrupt.h>
#include <Arduino.h>
#include <avr/io.h>
int FLASHER_SWITCH = 4;
int HAZARD_SWITCH = 5;
int LED = 0;
volatile int timer10ms = 0;
void Init(void);
void input_settings(void);
void Priority(void);
void setupTimer1()
{
noInterrupts(); //dezactivez intreruperiile
// Clear registers //configurez registrii, ii trec pe 0
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
// 1 Hz (16000000/((15624+1)*1024))
OCR1A = 153; //pentru 10ms 1420 pentru 10 ms
// CTC
TCCR1B |= (1 << WGM12);
// Prescaler 1024
TCCR1B |= (1 << CS12) | (1 << CS10);// pt prescalaru de 1024
// Output Compare Match A Interrupt Enable
TIMSK1 |= (1 << OCIE1A);
TIMSK1 |= (1 << TOIE1);
interrupts(); //setez intreruperea
}
void Init(void)
{
Serial.begin(115200);
setupTimer1();
pinMode(LED, OUTPUT);
pinMode(HAZARD_SWITCH, INPUT);
pinMode(FLASHER_SWITCH, INPUT);
}
int main(void)
{
Init();
for(;;)
{
if(timer10ms == 1) //DE FIECARE DATA CAND TREC 10 MS
{
Serial.print("\t timer=");
Serial.println(cnt); //AFISEZ CNT
timer10ms = 0; //RESETEZ
input_settings();
Priority();
output_settings();
}
}
return 0;
}
void input_settings(void)
{
digitalRead(HAZARD_SWITCH);
digitalRead(FLASHER_SWITCH);
}
void output_settings(void)
{
switch (LIGHT_CHANGE)
{
case 0:
}
}