void init_port();
void init_timer();
void setup() {
volatile long i;
int j=0;
init_port();
init_timer();
Serial.begin(9600);
while(1)
{
for(i=0; i<500000; i++);
Serial.println(j,DEC);
j++;
}
}
void init_timer()
{
volatile char *timer_TCCR1A = (volatile char *) 0x80;
volatile char *timer_TCCR1B = (volatile char *) 0x81;
volatile short *timer_TCNT1 = (volatile short*) 0x84;
volatile short *timer_OCR1A = (volatile short*) 0x88;
volatile char *timer_TIMSK1 = (volatile char *) 0x6F;
*timer_TCCR1A = 0;
*timer_TCCR1B = 0;
*timer_TCNT1 = 0;
*timer_OCR1A = 60000; // ~1second
*timer_TCCR1B = 0x0C;
*timer_TIMSK1 = 0x02;
}
void init_port()
{
volatile char *dir_F = (volatile char *) 0x30;
*dir_F = 0x01;
}
ISR(TIMER1_COMPA_vect)
{
volatile char *dir_F = (volatile char *) 0x31;
*dir_F ^= 0x01;
}
void loop() {
// put your main code here, to run repeatedly:
}