From ba78bd9ba834260d035a9830726afc34fdad2a15 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 18 Oct 2009 23:32:54 +0200 Subject: import firmware from LEGO v1.05 --- ATmega48/Source/d_power.r | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 ATmega48/Source/d_power.r (limited to 'ATmega48/Source/d_power.r') diff --git a/ATmega48/Source/d_power.r b/ATmega48/Source/d_power.r new file mode 100644 index 0000000..de229a3 --- /dev/null +++ b/ATmega48/Source/d_power.r @@ -0,0 +1,79 @@ +// +// Programmer +// +// Date init 14.12.2004 +// +// Reviser $Author:: Dktochpe $ +// +// Revision date $Date:: 2-09-05 14:37 $ +// +// Filename $Workfile:: d_power.r $ +// +// Version $Revision:: 8 $ +// +// Archive $Archive:: /LMS2006/Sys01/Ioctrl/Firmware/Source/d_power. $ +// +// Platform C +// + +#ifdef ATMEGAX8 + +#define POWERInit {\ + PORTC &= ~0x04;\ + DDRC &= ~0x04;\ + DIDR0 |= 0x04;\ + } + +#define POWEROff {\ + PORTD &= ~0x10;\ + DDRD |= 0x10;\ + } + +#define POWEROn {\ + PORTD |= 0x10;\ + DDRD |= 0x10;\ + } + +#define POWERSelect {\ + PORTD |= 0x04;\ + DDRD |= 0x04;\ + } + +#define POWERConvert(V) {\ + ADMUX = 0x42;\ + ADCSRA &= ~0x07;\ + ADCSRA |= 0x05;\ + ADCSRA |= 0x40;\ + while ((ADCSRA & 0x40));\ + ADCSRA |= 0x40;\ + while ((ADCSRA & 0x40));\ + V = ADC;\ + V &= 0x7FFF;\ + IoFromAvr.Battery &= 0x8000;\ + IoFromAvr.Battery |= V;\ + } + +#define POWERDeselect {\ + PORTD &= ~0x04;\ + DDRD |= 0x04;\ + } + +#define POWERHigh {\ + PORTC |= 0x04;\ + DDRC |= 0x04;\ + } + +#define POWERFloat {\ + PORTC &= ~0x04;\ + DDRC &= ~0x04;\ + } + + + +#define POWERExit {\ + POWEROff;\ + POWERDeselect;\ + POWERConvert(ADC);\ + } + +#endif -- cgit v1.2.3