#include /* Standard Integer Types */ #include /* Standard IO facilities */ #include /* General utilities */ #include /* Strings */ #include /* AVR device-specific IO definitions */ #include /* Convenience functions for busy-wait delay loops */ #include /* Interrupts */ #include "main.h" #include "uart.h" /* global variables */ volatile uint8_t pwr_ok; volatile uint8_t fan; volatile uint16_t tachometer = 0; volatile uint8_t timer2_ovf = 0; const uint16_t TIMER2_PRESCALE[8] = {0,1,8,32,64,128,256,1024}; /* PWR_OK interrupt */ ISR(PCINT0_vect) { /* PCI0 Interrupt Vector for PCINT[7:0] */ if (pwr_ok!=(PINB&(1<0) { OCR0A--; } printf("decreasing LED: %d\n",OCR0A); break; case '+': if (OCR0A<0xff) { OCR0A++; } printf("increasing LED: %d\n",OCR0A); break; case 't': if (tachometer) { uint16_t prescale = TIMER2_PRESCALE[TCCR2B&((1<