Hallo In einem Programm verwende ich die power.h. Das kann so aussehen:
1 | void powerSetup() |
2 | {
|
3 | PRR = (1<<PRTWI)|(1<<PRUSART1)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM2)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRADC); |
oder so:
1 | power_twi_disable(); // Schaltet TWI (I2C) ab |
2 | power_usart1_disable(); // Schaltet USART1 ab |
3 | power_usart0_disable(); // Schaltet USART2 ab |
4 | power_spi_disable(); // Schaltet SPI ab |
5 | power_timer2_disable(); // Schaltet TIMER2 ab |
6 | power_timer1_disable(); // Schaltet TIMER1 ab |
7 | power_timer0_disable(); // Schaltet TIMER0 ab |
8 | power_adc_disable(); // Schaltet ADC ab |
Aufruf erfolgt damit:
1 | int main(void) |
2 | {
|
3 | powerSetup(); |
4 | DDRA=0b00100001; // DDR A auf Ausgang schalten |
5 | PORTA=0b00100001; // Port A auf aus |
6 | sei(); // Interrupt ein |
7 | while(1) // Programmschleife |
8 | {
|
9 | /*PORTA &=~(1<<PINA0); // LED 3 ein
|
10 | _delay_ms(4000); // Pause
|
11 |
|
12 | PORTA |=(1<<PINA0); // LED 3 aus
|
13 | _delay_ms(4000);*/ // Pause |
14 | }
|
15 | }
|
Auf dem Board befindet sich noch eine LED, die ca mit Prozessor 15mA nimmt. Wenn ich die power Funktion dazu nehme ergibt es eine Einsparung von ca. 0,5mA Strom. Kann das korrekt sein?