Commit 3079ccda authored by Jan Kasprzak's avatar Jan Kasprzak
Browse files

Power management - make every module enable power for its own HW.

parent 8ebf32f3
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/power.h>
#include <avr/sleep.h>

#include "lights.h"
@@ -132,6 +133,9 @@ void init_adc()
	current_slow_adc = NUM_ADCS;
	current_adc = 0;

	power_adc_enable();
	ACSR |= _BV(ACD);	// but disable the analog comparator

	ADCSRA = _BV(ADEN)			// enable
		| _BV(ADPS1) | _BV(ADPS0)	// CLK/8 = 125 kHz
		// | _BV(ADPS2)			// CLK/16 = 62.5 kHz
+2 −3
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@

static void hw_setup()
{
	power_all_disable();

	wdt_enable(WDTO_1S);

	//init_battery();
@@ -67,9 +69,6 @@ int main(void)
{
	init_log();

	power_usi_disable(); // Once for lifetime
	ACSR |= _BV(ACD);    // disable analog comparator

	log_set_state(3);

	hw_setup();
+3 −0
Original line number Diff line number Diff line
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/power.h>
#include <util/delay.h>
#include <util/atomic.h>

@@ -24,6 +25,8 @@ static void inline enable_pll()

void init_pwm()
{
	power_timer1_enable();

	enable_pll();

	TCCR1 = _BV(CTC1) | _BV(CS10);	// no clock prescaling