// Copyright (c) 2008 jokamajo.org // $Id$ // define section, move to main.h later on // macro's #ifndef __AVR_ATmega168__ #define __AVR_ATmega168__ #endif #define METER0 "cccccccccccccccccccccccccccccccc" #define METER1 "dddddddddddddddddddddddddddddddd" #define METER2 "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" #define METER3 "ffffffffffffffffffffffffffffffff" #define START 0 #define END3 0xffffffff #define END2 0xeeeeeeee #define END1 0xdddddddd #define END0 0xcccccccc // pin definitions #define METER0PIN 2 #define METER1PIN 3 #define METER2PIN 4 #define METER3PIN 9 #define POTPIN0 6 #define POTPIN1 7 #define POTPIN2 8 #define LEDPIN 13 // end of define // pin/register/ISR definitions #include // eeprom library #include // watchdog timer library #include // variable declarations uint16_t i; typedef struct { boolean pulse0; boolean toggle0; boolean pulse1; boolean toggle1; boolean pulse2; boolean toggle2; boolean pulse3; boolean toggle3; } struct_aux; volatile struct_aux aux = {false, false, false, false, false, false, false, false}; typedef struct { char meter[513]; //don't forget to reserve a byte for a terminating NULL } struct_meas; volatile struct_meas EEMEM EEPROM_measurements; volatile struct_meas measurements; // interrupt service routine for analog comparator ISR(ANALOG_COMP_vect) { digitalWrite(LEDPIN, HIGH); // sets the LED on UCSR0B &= ~((1< moved the call to this function to start of the main loop, before init // clock settings: divide by 8 to get a 1Mhz clock, allows us to set the BOD level to 1.8V (DS p.37) CLKPR = (1<