#include <avr/power.h>
Многие AVR имеют Регистр Сокращения Мощности Power Reduction Register (PRR) или Регистраторы (PRRx) это позволяет уменьшать потребляемую мощность, отключая или разрешая по необходимости различные встроенные периферийные устройства.
В этом header файле есть много макро, которые обеспечивают простую связь, для разрешения или отключения встроенных периферийных устройств. См. таблицу ниже.
Примечание:
Не все устройства AVR имеют регистр PRR (например ATmega128). На таких устройствах эти макро не доступны.
Не все устройства AVR имеют одинаковые периферийные устройства (например, LCD интерфейс), или называются они по-другому (например, USART и USART0). Пожалуйста обращайтесь к таблице данных вашего устройства, или header файлам, чтобы узнавать, какое макроопределение является применимым для вашего устройства.
Описание |
применим для устройства |
|
power_adc_enable() |
Разрешить АЦП. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B,
AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250,
ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290,
ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88,
ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85,
ATtiny261, ATtiny461, ATtiny861 |
power_adc_disable() |
Запретить
АЦП. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B,
AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250,
ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290,
ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88,
ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85,
ATtiny261, ATtiny461, ATtiny861 |
power_lcd_enable() |
Разрешить LCD. |
ATmega169,
ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490 |
power_lcd_disable(). |
Запретить LCD. |
ATmega169,
ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490 |
power_psc0_enable() |
Включить the Power Stage Controller 0
module. |
AT90PWM1,
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_psc0_disable() |
Отключить the Power Stage Controller
0 module. |
AT90PWM1,
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_psc1_enable() |
Включить the Power Stage Controller 1
module. |
AT90PWM1,
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_psc1_disable() |
Отключить the Power Stage Controller
1 module. |
AT90PWM1,
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_psc2_enable() |
Включить the Power Stage Controller 2
module. |
AT90PWM1,
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_psc2_disable() |
Отключить the Power Stage Controller
2 module. |
AT90PWM1,
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_spi_enable() |
Включить the Serial Peripheral Interface
module. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286,
AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216,
AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645,
ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649,
ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168 |
power_spi_disable() |
Отключить the Serial Peripheral Interface
module. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B,
AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250,
ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290,
ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88,
ATmega168 |
power_timer0_enable() |
Включить Таймер / счётчик 0. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM216, AT90PWM316, AT90PWM2,
AT90PWM2B, AT90PWM3, AT90PWM3B, ATmega165, ATmega165P, ATmega325, ATmega3250,
ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406,
ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25,
ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
power_timer0_disable() |
Отключить Таймер / счётчик 0. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B,
AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250,
ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406,
ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25,
ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
power_timer1_enable() |
Включить Таймер / счётчик 1. |
ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
power_timer1_disable() |
Отключить Таймер / счётчик. |
ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
power_timer2_enable() |
Включить Таймер / счётчик 2. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286,
AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168
|
power_timer2_disable() |
Отключить Таймер / счётчик 2. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega48,
ATmega88, ATmega168 |
power_timer3_enable() |
Включить Таймер / счётчик 3. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287 |
power_timer3_disable() |
Отключить Таймер / счётчик 3. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287 |
power_timer4_enable() |
Включить Таймер / счётчик 4. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_timer4_disable() |
Отключить Таймер / счётчик 4. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_timer5_enable() |
Включить Таймер / счётчик 5. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_timer5_disable() |
Отключить Таймер / счётчик 5. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_twi_enable() |
Включить TWI. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406,
ATmega48, ATmega88, ATmega168 |
power_twi_disable() |
Отключить
TWI. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406,
ATmega48, ATmega88, ATmega168 |
power_usart_enable() |
Включить USART. |
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_usart_disable() |
Отключить USART. |
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B |
power_usart0_enable() |
Включить USART 0. |
ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168 |
power_usart0_disable() |
Disable the USART 0 module. |
ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168 |
power_usart1_enable() |
Включить USART 1. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, ATmega164P, ATmega324P |
power_usart1_disable() |
Отключить USART 1. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647,
AT90USB1286, AT90USB1287, ATmega164P, ATmega324P |
power_usart2_enable() |
Включить USART 2. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_usart2_disable() |
Отключить USART 2. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_usart3_enable() |
Включить USART 3. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_usart3_disable() |
Отключить USART 3. |
ATmega640,
ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
power_usb_enable() |
Включить USB. |
AT90USB646, AT90USB647, AT90USB1286, AT90USB1287 |
power_usb_disable() |
Отключить USB. |
AT90USB646, AT90USB647, AT90USB1286, AT90USB1287 |
power_usi_enable() |
Включить Universal Serial Interface
module. |
ATtiny24,
ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461,
ATtiny861 |
power_usi_disable() |
Выключить the Universal Serial Interface
module. |
ATtiny24,
ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461,
ATtiny861 |
power_vadc_enable() |
Включить Напряжение ADC. |
ATmega406 |
power_vadc_disable() |
ОтключитьНапряжение ADC. |
ATmega406 |
power_all_enable() |
Включить все модули. |
ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
power_all_disable() |
Отлючить все модули. |
ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
Часть из более новых AVR содержат Системный Регистр Предмасштаба Часов System Clock Prescale Register (CLKPR) это позволяет Вам уменьшать системную частоту часов и потребляемую мощность, когда потребность в обработке мощность низка. Ниже - два макроопределения и перечислимый тип, который может использоваться, чтобы связать с помощью интерфейса к Регистру Предмасштаба Часов.
Примечание:
Не все AVR девайсы имеют a Clock Prescale Register. На таких устройствах, без Регистра Предмасштаба Часов, макроопределения не доступны.
typedef enum
{
clock_div_1 = 0,
clock_div_2 = 1,
clock_div_4 = 2,
clock_div_8 = 3,
clock_div_16 = 4,
clock_div_32 = 5,
clock_div_64 = 6,
clock_div_128 = 7,
clock_div_256 = 8
} clock_div_t;
Установка коэффициента предделителя часов.
clock_prescale_set(x)
Установка битов выбора регистра предделителя часов, выбирая коэффициент деления системных часов. Тип x - clock_div_t.
clock_prescale_get()
Получение и возвращение установки регистра предсчетчика часов. Возвращаемый тип - clock_div_t.
|