--- main-old.c 2010-03-28 20:47:03.000000000 +0200 +++ main.c 2010-03-28 23:06:25.000000000 +0200 @@ -102,6 +102,19 @@ unsigned int L_CAPACITY_FACTOR EEMEM = 283; #endif +/* Internal Voltage Reference (mV), nur definieren, wenn genauer Wert bekannt. */ +//#define VINT 2674 /* gemessen am ATmega8 */ +#define VINT 1108 /* gemessen am ATmega48 */ + +/* Spannungsteiler für Batteriespannungsmessung */ +#define R11 27000 +#define R12 3300 + +/* Schwellwert für schwache Batterie (mV) */ +#define UBAT_WEAK 7600 +/* Schwellwert für leere Batterie (mV) */ +#define UBAT_EMPTY 7150 + /*######################################################################################## Ende der Konfigurations-Einstellungen @@ -231,6 +244,22 @@ Für den normalen Einsatz des Testers sollte der Watchdog aber unbedingt aktiviert werden! */ +#ifndef VINT + #ifdef __AVR_ATmega8__ + #define VINT 2560 + #else + #define VINT 1100 + #endif +#endif +#ifndef R11 + #define R11 10000 + #define R12 3300 +#endif + +#define UMESS_WEAK ((uint32_t)UBAT_WEAK*R12/(R11+R12)) +#define UMESS_EMPTY ((uint32_t)UBAT_EMPTY*R12/(R11+R12)) +#define ADC_VAL(i) ((uint16_t)((uint32_t)i*1024/VINT)) + struct Diode { uint8_t Anode; @@ -384,10 +413,10 @@ lcd_clear(); //Versorgungsspannung messen ReadADC(5 | (1<