avr-libc  2.0.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

関数
<avr/power.h>: 電力削減管理

関数

void clock_prescale_set (clock_div_t __x)
 

説明詳細

#include <avr/power.h>

おおくのAVRは、電力削減レジスタ(PRR)やオンボード周辺回路使用の有効や無効にすることで電力を削減するためのレジスタ群(PRRx)があります。一部のデバイスには、システムクロックプリスケーラレジスタ(CLKPR)と同じ機能を提供するXTAL分周器制御レジスタ(XDIV)があります。

電力削減のために、オンボード周辺回路の無効または有効にする簡単なインターフェースを提供するおおくのマクロがヘッダファイルに含まれています。下の表を参照ください。

注意
全てのAVRデバイスが電力削減レジスタを持っているわけではありません(たとえばATmega8)。電力削減レジスタが無いこれらのデバイスでは、これらのマクロは有効ではありません。
全てのAVRデバイスが、同じ周辺回路(例えばLEDインタフェース)を含みませんし、名前が異なっています(例えば USARTとUSART0)。デバイスのデータシートやヘッダファイルを調べて、どのマクロが使用するデバイスで有効か確認してください。
XTAL分周器制御レジスタ(XDIV)を使用するデバイスでは、プリスケーラーを使用する場合にTimer/Counter0は非同期モードでのみ使用できます。Timer/Counter0のソースは、周辺クロックの1/4未満でなければならいことに注意してください。したがって、一般的な32.768 KHz水晶を使用する場合は、クロックを131.072KHz未満にスケーリングしないでください。

Power Macro

Description

power_aca_disable()

PortAのアナログコンパレータを無効化

power_aca_enable()

PortAのアナログコンパレータを有効化

power_adc_enable()

A/D変換モジュールを有効化

power_adc_disable()

A/D変換モジュールを無効化

power_adca_disable()

PortAのA/D変換モジュールを無効化

power_adca_enable()

PortAのA/D変換モジュールを有効化

power_evsys_disable()

EVSYSモジュールを無効化

power_evsys_enable()

EVSYSモジュールを有効化

power_hiresc_disable()

PortCのHIRESモジュールを無効化

power_hiresc_enable()

PortCのHIRESモジュールを有効化

power_lcd_enable()

LCDモジュールを有効化

power_lcd_disable().

LCDモジュールを無効化

power_pga_enable()

Programmable Gain Amplifierモジュールを有効化

power_pga_disable()

Programmable Gain Amplifierモジュールを無効化

power_pscr_enable()

Reduced Power Stage Controllerモジュールを有効化

power_pscr_disable()

Reduced Power Stage Controllerモジュールを無効化

power_psc0_enable()

Power Stage Controller 0モジュールを有効化

power_psc0_disable()

Power Stage Controller 0モジュールを無効化

power_psc1_enable()

Power Stage Controller 1モジュールを有効化

power_psc1_disable()

Power Stage Controller 1モジュールを無効化

power_psc2_enable()

Power Stage Controller 2モジュールを有効化

power_psc2_disable()

Power Stage Controller 2モジュールを無効化

power_ram0_enable()

SRAM block 0を有効化

power_ram0_disable()

SRAM block 0を無効化

power_ram1_enable()

SRAM block 1を有効化

power_ram1_disable()

SRAM block 1を無効化

power_ram2_enable()

SRAM block 2を有効化

power_ram2_disable()

SRAM block 2を無効化

power_ram3_enable()

SRAM block 3を有効化

power_ram3_disable()

SRAM block 3を無効化

power_rtc_disable()

RTCモジュールを無効化

power_rtc_enable()

RTC moduleモジュールを有効化

power_spi_enable()

Serial Peripheral Interfaceモジュールを有効化

power_spi_disable()

Serial Peripheral Interfaceモジュールを無効化

power_spic_disable()

PortCのSPIモジュールを無効化

power_spic_enable()

PortCのSPIモジュールを有効化

power_spid_disable()

PortDのSPIモジュールを無効化

power_spid_enable()

PortDのSPIモジュールを有効化

power_tc0c_disable()

PortCのTC0モジュールを無効化

power_tc0c_enable()

PortCのTC0モジュールを有効化

power_tc0d_disable()

PortDのTC0モジュールを無効化

power_tc0d_enable()

PortDのTC0モジュールを有効化

power_tc0e_disable()

PortEのTC0モジュールを無効化

power_tc0e_enable()

PortEのTC0モジュールを有効化

power_tc0f_disable()

PortFのTC0モジュールを無効化

power_tc0f_enable()

PortFのTC0モジュールを有効化

power_tc1c_disable()

PortCのTC1モジュールを無効化

power_tc1c_enable()

PortCのTC1モジュールを有効化

power_twic_disable()

PortCのTwo Wire Interfaceモジュールを無効化

power_twic_enable()

PortCのTwo Wire Interfaceモジュールを有効化

power_twie_disable()

PortEのTwo Wire Interfaceモジュールを無効化

power_twie_enable()

PortEのTwo Wire Interfaceモジュールを有効化

power_timer0_enable()

Timer 0モジュールを有効化

power_timer0_disable()

Timer 0モジュールを無効化

power_timer1_enable()

Timer 1モジュールを有効化

power_timer1_disable()

Timer 1モジュールを無効化

power_timer2_enable()

Timer 2モジュールを有効化

power_timer2_disable()

Timer 2モジュールを無効化

power_timer3_enable()

Timer 3モジュールを有効化

power_timer3_disable()

Timer 3モジュールを無効化

power_timer4_enable()

Timer 4モジュールを有効化

power_timer4_disable()

Timer 4モジュールを無効化

power_timer5_enable()

Timer 5モジュールを有効化

power_timer5_disable()

Timer 5モジュールを無効化

power_twi_enable()

Two Wire Interfaceモジュールを有効化

power_twi_disable()

Two Wire Interfaceモジュールを無効化

power_usart_enable()

USARTモジュールを有効化

power_usart_disable()

USARTモジュールを無効化

power_usart0_enable()

USART 0モジュールを有効化

power_usart0_disable()

USART 0モジュールを無効化

power_usart1_enable()

USART 1モジュールを有効化

power_usart1_disable()

USART 1モジュールを無効化

power_usart2_enable()

USART 2モジュールを有効化

power_usart2_disable()

USART 2モジュールを無効化

power_usart3_enable()

USART 3モジュールを有効化

power_usart3_disable()

USART 3モジュールを無効化

power_usartc0_disable()

PortCのUSART0モジュールを無効化

power_usartc0_enable()

PortCのUSART0モジュールを有効化

power_usartd0_disable()

PortDのUSART0モジュールを無効化

power_usartd0_enable()

PortDのUSART0モジュールを有効化

power_usarte0_disable()

PortEのUSART0モジュールを無効化

power_usarte0_enable()

PortEのUSART0モジュールを有効化

power_usartf0_disable()

PortFのUSART0モジュールを無効化

power_usartf0_enable()

PortFのUSART0モジュールを有効化

power_usb_enable()

USBモジュールを有効化

power_usb_disable()

USBモジュールを無効化

power_usi_enable()

Universal Serial Interfaceモジュールを有効化

power_usi_disable()

Universal Serial Interfaceモジュールを無効化

power_vadc_enable()

Voltage ADCモジュールを有効化

power_vadc_disable()

Voltage ADCモジュールを無効化

power_all_enable()

すべてのモジュールを有効化

power_all_disable() すべてのモジュールを無効化

一部の新しいAVRには、システムクロックプリスケールレジスタ(CLKPR)があり、処理力が低くてよい時には、システムクロック周波数を下げ消費電力を減らすことができます。一部の古いAVR(ATmega103, ATmega64, ATmega128)では、XTAL分周器制御レジスタで同じ機能を実現できます。以下は、クロックプリスケールレジスタまたはXTAL分周器制御レジスタのインタフェースで使用できる2つのマクロと列挙型です。

注意
すべてのAVRデバイスにクロックプリスケーラがあるわけではありません。 クロックプリスケールレジスタまたはXTAL分周器制御レジスタのないデバイスでは、これらのマクロは使用できません。
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_1_rc = 15, // ATmega128RFA1 only
} clock_div_t;

システムクロックプリスケールレジスタを使用したデバイス用のクロックプリスケーラ設定用列挙型

typedef enum
{
clock_div_1 = 1,
clock_div_2 = 2,
clock_div_4 = 4,
clock_div_8 = 8,
clock_div_16 = 16,
clock_div_32 = 32,
clock_div_64 = 64,
clock_div_128 = 128
} clock_div_t;

XTAL分周器レジスタを使用したデバイス用のクロックプリスケーラ設定用列挙型

関数説明

clock_prescale_set ( clock_div_t  x)

クロックプリスケーラレジスタ選択ビットを設定し、システムクロックの分周器設定を選択します。コンパイラーの最適化が無効の場合でも、この関数はインライン化されます。

xの型はclock_div_tです。

注意
XTAL分周器制御レジスタ(XDIV)があるデバイスでは、xは1から129の範囲になります。そのため、clock_div_t型の引数を使用する必要はありません。