Домашняя страница библиотеки_c AVR

Синтаксис языка C

Библиотека языка C GNU glibc

 Страницы развития библиотеки_с AVR

Главная страница

Инструкция пользователя

Содержание библиотеки_c

Часто задаваемые вопросы

Содержание по алфавиту

Демонстрационные проекты


<avr/power.h>: Управление энергопотреблением

#include <avr/power.h>

Многие AVR имеют Регистр Сокращения Мощности Power Reduction Register  (PRR) или Регистраторы (PRRx) это позволяет уменьшать потребляемую мощность, отключая или разрешая по необходимости различные встроенные периферийные устройства.

В этом header файле есть много макро, которые обеспечивают простую связь, для разрешения или отключения встроенных периферийных устройств. См. таблицу ниже.

Примечание:

Не все устройства AVR имеют регистр PRR (например ATmega128). На таких устройствах эти макро не доступны.

Не все устройства AVR имеют одинаковые периферийные устройства (например, LCD интерфейс), или называются они по-другому (например, USART и USART0). Пожалуйста  обращайтесь к таблице данных вашего устройства, или header файлам, чтобы узнавать, какое макроопределение является применимым для вашего устройства.

Power Макрс

Описание

применим для устройства

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.

 

 

Hosted by uCoz