■ BASCOM-AVR (DEMO) の使用方法 ■
命令文のリファレンス・マニュアル 使用方法のページへ戻る
内蔵ハードウェア制御命令
● 内蔵ハードウェアに関する命令です。
CONFIG TIMER0 ハードウェア タイマー 0 を、設定します。
CONFIG TIMER1 ハードウェア タイマー 1 を、設定します。
CONFIG TIMER2 ハードウェア タイマー 2 を、設定します。
LOAD ハードウェア タイマーの、Timer/Counter レジスターに、任意の値を設定します。
CONFIG WATCHDOG ウォッチドッグ タイマーを、設定します。
CONFIG ADC A/Dコンバータを、設定します。
GETADC A/Dコンバータを始動し、変換した値を変数に読み込みます。
CONFIG ACI アナログ比較器(コンパレーター)を、設定します。
START device 指定されたハードウェア機器を、始動させます。
STOP device 指定されたハードウェア機器を、停止させます。
ON interrupt 指定された割り込みが発生した場合に、実行するサブルーチン名を指示します。
ENABLE 指定された割り込みを、許可します。
DISABLE 指定された割り込みを、禁止します。
CONFIG INTx 外部割り込みの、発生条件を設定します。
CONFIG SPI SPI(Serial Peripheral Interface)を、設定します。
SPIINIT SPIピンを初期化します。
SPIIN SPIバスから、データを読み込みます。
SPIOUT SPIバスへ、データを送ります。
SPIMOVE SPIバスへ、データを送受信します。
● システムのハードウェアに関する命令です。
CLOCKDIVISION システム・クロックの分周値を設定します。 (クロック分周制御レジスタXDIV用)
CONFIG CLOCKDIV システム・クロックの分周値を設定します。 (クロック前置分周レジスタCLKP用)
CONFIG POWERMODE AVRを、搭載されているスリープ・モードの1つに移行させます。 (新命令)
POWER mode AVRを、搭載されているスリープ・モードの1つに移行させます。 (旧命令)
IDLE AVRを、アイドル モードに移行させます。 (旧命令)
POWERDOWN AVRを、パワーダウン モードに移行させます。 (旧命令)
POWERSAVE AVRを、パワーセーブ モードに移行させます。 (旧命令)



CONFIG TIMER0 一覧へ戻る
ハードウェア タイマー 0 を、設定します。

● AT90S8535等の、比較器[OCR0]を搭載していないチップ。

(1)TIMERモードの設定。 (AVRクロックを、タイマーのクロックに使用します)
 
書式 Config Timer0 = Timer , Prescale = value
注釈
value = プリスケール(前段分周)の値。  ( 1 , 8 , 64 , 256 , 1024 )

(2)COUNTERモードの設定。 (AVRクロックと前段分周の代わりに、外部クロックが使用されます)
 
書式 Config Timer0 = Counter , Edge = edge
注釈
edge = Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント。

(例)
・AVRクロック6.144MHzを、前段分周で8分周し768KHzを得ます。
・次に8ビットタイマーがオーバーフロー(256分周)すると、3,000Hzの割り込みが発生し、ポートCピン0を
 反転させることで、1,500Hzの方形波が出力されます。
 
(例) ハードウェア タイマー割り込みにより、ポートCピン0から1,500Hzの方形波を出力。
$regfile = "8535def.DAT" ' AVRデバイスを"AT90S8535"に設定。
$crystal = 6144000 ' クロック周波数を6.144MHzに設定。
Config PINC.0 = Output ' ポートCピン0を出力ポートに設定。
Config Timer0 = Timer , Prescale = 8 ' TIMER0を設定。
On Timer0 Tint0 ' オーバーフロー割り込みルーチンのラベルを設定。
Enable Timer0 ' TIMER0オーバーフロー割り込みを許可。
Enable Interrupts ' すべての割り込みを許可。
Do ' 繰り返し処理。
Loop '
End ' プログラムの終了。
' '
Tint0: ' TIMER0オーバーフロー割り込み処理ルーチン。
Toggle PORTC.0 ' ポートCピン0の状態を反転。
Return ' 割り込み処理ルーチンの終了。
 
・On Timer0はOn Ovf0と、Enable Timer0はEnable Ovf0と同じ表記です。


● ATmega8535等の、比較器[OCR0]を搭載しているチップ。

(1)TIMERモードの設定。
(AVRクロックを、タイマーのクロックに使用します)
 
書式 Config Timer0 = Timer , Prescale = value , Clear Timer = clr ,
                     Compare x = oc0x
注釈
value =
 
プリスケール(前段分周)の値。
  (一部のチップでは7種類)
 ( 1 , 8 , 64 , 256 , 1024 )
 ( 1 , 8 , 32 , 64 , 128 , 256 , 1024 )
Clear Timer = clrは、比較器[OCR0x]を使用する場合に記述。
 TIMER0[TCNT0]と比較器[OCR0x]が一致した時、
clr = 0
1
 − オーバーフロー動作。
 − 比較一致 CTC動作。
 TIMER0[TCNT0]をクリアしない。
 TIMER0[TCNT0]をクリアする。
Compare x = oc0xは、比較出力[OC0x]ピンを使用する場合に記述。
x = なし
A

B
 − 比較器が1つのチップの場合。
 − 比較器Aを設定。
 − 比較器Bを設定。
oc0x = Clear
Set
Toggle
Disconnect
 − 一致発生で、[OC0x]ピンをL(0)にします。
 − 一致発生で、[OC0x]ピンをH(1)にします。
 − 一致発生で、[OC0x]ピンを反転します。
 − [OC0x]ピンを使用しません。 (デフォルト)

 
(2)COUNTERモードの設定。
(AVRクロックと前段分周の代わりに、外部クロックが使用されます)
 
書式 Config Timer0 = Counter , Edge = edge , Clear Timer = clr ,
                     Compare x =
oc0x
注釈
edge =
Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント。
以下、TIMERモードの設定と同じ。

(例)
・AVRクロック12.8MHzを、前段分周で64分周し200KHzを得ます。
・比較器を100分周に設定し、2,000Hzの比較出力[OC0x]と、割り込みが発生するので、
 ポートDピン6とポートCピン0が反転動作し、1,000Hzの方形波が出力されます。
 
(例) 比較出力と割り込みにより、PD6とPC0から1,000Hzの方形波を出力。
$regfile = "m88def.dat" ' AVRデバイスを"ATmega88"に設定。
$crystal = 12800000 ' クロック周波数を12.8MHzに設定。
Config PIND.6 = Output ' 比較器出力[OC0A]を出力ポートに設定。
Config PINC.0 = Output ' ポートCピン0を出力ポートに設定。
Config Timer0 = Timer , Prescale = 64 , Clear Timer = 1 , Compare A = Toggle
Ocr0a = 99 ' 比較器[OCR0A]を100分周に設定。
On Oc0a Tint0 ' 比較一致割り込みルーチンのラベルを設定。
Enable Oc0a ' TIMER0比較一致割り込みを許可。
Enable Interrupts ' すべての割り込みを許可。
Do ' 繰り返し処理。
Loop '
End ' プログラムの終了。
' '
Tint0: ' TIMER0比較一致割り込み処理ルーチン。
Toggle PORTC.0 ' ポートCピン0の状態を反転。
Return ' 割り込み処理ルーチンの終了。
 
注.比較器に数値を入れる場合。
  1.比較器が1つのチップ
   ・[COMPARE0] , [OCR0] は、同じ扱いです。
  2.比較器がA , B 2つのチップ
   ・[OCR0A] , [COMPARE0A] , [PWM0A] は、同じ扱いです。 (新バージョンから)
   ・[OCR0B] , [COMPARE0B] , [PWM0B] は、同じ扱いです。 (新バージョンから)

 
(3)PWMモードの設定。
 
書式 Config Timer0 = Pwm , Clear Timer = clr , Compare x Pwm = oc0x ,
                     Prescale = value
注釈 Clear Timer = clr (PWMモードでは、使い方が変わります)
clr = 0
1
 − Phase Correct PWM Mode
 − Fast PWM Mode
 (位相基準PWMモード)
 (高速PWMモード)
Compare x Pwm = oc0xは、比較出力[OC0x]ピンを使用する場合に記述。
x = なし
A
B
 − 比較器が1つのチップの場合。
 − 比較器Aを設定。
 − 比較器Bを設定。
oc0x = Clear Up
Clear Down
Disconnect
 − 上昇計数時一致発生でL(0)、下降時でH(1)にします。
 − 上昇計数時一致発生でH(1)、下降時でL(0)にします。
 − [OC0x]ピンを使用しません。 (デフォルト)
value =
 
プリスケール(前段分周)の値。
  (一部のチップでは7種類)
 ( 1 , 8 , 64 , 256 , 1024 )
 ( 1 , 8 , 32 , 64 , 128 , 256 , 1024 )
外部クロックを使用する場合は、Edge = edge
edge =
Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント。

・ATmega88等の、「WGM02」ビットの設定方法が不明なため、このビットをセットする場合は、
 CONFIG TIMER0
行の次で、「Set TCCR0B.3」の様にレジスターへ直接設定して下さい。

(例)
・AVRクロック12.8MHzが、タイマーにより256分周され、50KHzを得ます。
・比較器に25KHzの1/10の値を設定し、比較出力[OC0]から25KHzで1:9の負パルスが出力されます。
・また、比較一致割り込みが発生するので、ポートCピン0からは、25KHzで1:9の正パルスが出力
 されます。
 
(例) PB3とPC0から、25KHzで1:9のパルスを出力。
$regfile = "m8535.DAT" ' AVRデバイスを"ATmega8535"に設定。
$crystal = 12800000 ' クロック周波数を12.8MHzに設定。
Config PINB.3 = Output ' 比較器出力[OC0]を出力ポートに設定。
Config PINC.0 = Output ' ポートCピン0を出力ポートに設定。
Config Timer0 = Pwm , Clear Timer = 0 , Compare Pwm = Clear Down , Prescale = 1
Ocr0 = 25 ' 比較器[OCR0]を1/10に設定。
On Oc0 Tint0 ' 比較一致割り込みルーチンのラベルを設定。
Enable Oc0 ' TIMER0比較一致割り込みを許可。
Enable Interrupts ' すべての割り込みを許可。
Do ' 繰り返し処理。
Loop '
End ' プログラムの終了。
' '
Tint0: ' TIMER0比較一致割り込み処理ルーチン。
Toggle PORTC.0 ' ポートCピン0の状態を反転。
Return ' 割り込み処理ルーチンの終了。



CONFIG TIMER1 一覧へ戻る
ハードウェア タイマー 1 を、設定します。

(1)TIMERモードの設定。 (AVRクロックを、タイマーのクロックに使用します)
 
書式 Config Timer1 = Timer , Prescale = value , Clear Timer = clr ,
         Compare x = oc1x , Capture Edge =
ices , Noise Cancel = icnc
注釈
value = プリスケール(前段分周)の値。  ( 1 , 8 , 64 , 256 , 1024 )
Clear Timer = clrは、比較器[OCR1x]を使用する場合に記述。
 TIMER1[TCNT1]と比較器[OCR1x]が一致した時、またはキャプチャー動作時に、
clr = 0
1
 − オーバーフロー動作。
 − 比較一致 CTC動作。
 TIMER1[TCNT1]をクリアしない。
 TIMER1[TCNT1]をクリアする。
Compare x = oc1xは、比較出力[OC1x]ピンを使用する場合に記述。
x = なし
A
B

C
 − 比較器が1つのチップの場合。
 − 比較器Aを設定。
 − 比較器Bを設定。
 − 比較器Cを設定。
oc1x = Clear
Set
Toggle
Disconnect
 − 一致発生で、[OC1x]ピンをL(0)にします。
 − 一致発生で、[OC1x]ピンをH(1)にします。
 − 一致発生で、[OC1x]ピンを反転します。
 − [OC1x]ピンを使用しません。 (デフォルト)
Capture Edge = ices , Noise Cancel = icnc は、キャプチャー機能を
使用する場合に記述。
キャプチャーレジスター[ICR1]は、[Capture1]という名称で読み書きができます。
ices = Rising
Falling
 − ICP1ピンの立ち上がりエッジでキャプチャー。
 − ICP1ピンの立ち下がりエッジでキャプチャー。
icnc = 0
1
 − キャプチャー入力ICP1ピンの、ノイズ除去機能をオフにします。
 − キャプチャー入力ICP1ピンの、ノイズ除去機能をオンにします。

 
(2)COUNTERモードの設定。 (AVRクロックと前段分周の代わりに、外部クロックが使用されます)
 
書式 Config Timer1 = Counter , Edge = edge , Clear Timer = clr ,
         Compare x = oc1x , Capture Edge =
ices , Noise Cancel = icnc
注釈
edge =
Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント。
以下、TIMERモードの設定と同じ。

(例)
・AVRクロック12.8MHzを、前段分周で64分周し200KHzを得ます。
・比較器を2000分周に設定し、100Hzの比較出力[OC1A]と、割り込みが発生するので、
 ポートDピン5とポートCピン0が反転動作し、50Hzの方形波が出力されます。
 
(例) 比較出力と割り込みにより、PD5とPC0から50Hzの方形波を出力。
$regfile = "m8535.DAT" ' AVRデバイスを"ATmega8535"に設定。
$crystal = 12800000 ' クロック周波数を12.8MHzに設定。
Config PIND.5 = Output ' 比較器出力[OC1A]を出力ポートに設定。
Config PINC.0 = Output ' ポートCピン0を出力ポートに設定。
Config Timer1 = Timer , Prescale = 64 , Clear Timer = 1 , Compare A = Toggle
Compare1a = 1999 ' 比較器[OCR1AH,L]を2000分周に設定。
On Compare1a Tint1 ' 比較一致割り込みルーチンのラベルを設定。
Enable Compare1a ' TIMER1比較一致割り込みを許可。
Enable Interrupts ' すべての割り込みを許可。
Do ' 繰り返し処理。
Loop '
End ' プログラムの終了。
' '
Tint1: ' TIMER1比較一致割り込み処理ルーチン。
Toggle PORTC.0 ' ポートCピン0の状態を反転。
Return ' 割り込み処理ルーチンの終了。

 
(3)PWMモードの設定。
 
書式 Config Timer1 = Pwm , Pwm = bit , Clear Timer = clr ,
         Compare x Pwm = oc1x , Prescale = value ,
         Capture Edge = ices , Noise Cancel = icnc
注釈
bit = 8
9
10
 − 8ビットPWM。
 − 9ビットPWM。
 − 10ビットPWM。
Clear Timer = clr (PWMモードでは、使い方が変わります)
clr = 0
1
 − Phase Correct PWM Mode
 − Fast PWM Mode
 (位相基準PWMモード)
 (高速PWMモード)
Compare x Pwm = oc1xは、比較出力[OC1x]ピンを使用する場合に記述。
x = なし
A
B

C
 − 比較器が1つのチップの場合。
 − 比較器Aを設定。
 − 比較器Bを設定。
 − 比較器Cを設定。
oc1x = Clear Up
Clear Down
Disconnect
 − 上昇計数時一致発生でL(0)、下降時でH(1)にします。
 − 上昇計数時一致発生でH(1)、下降時でL(0)にします。
 − [OC1x]ピンを使用しません。 (デフォルト)
value = プリスケール(前段分周)の値。  ( 1 , 8 , 64 , 256 , 1024 )
外部クロックを使用する場合は、Edge = edge
edge =
Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント
Capture Edge = ices , Noise Cancel = icnc は、キャプチャー機能を
使用する場合に記述。
キャプチャーレジスター[ICR1]は、[Capture1]という名称で読み書きができます。
ices = Rising
Falling
 − ICP1ピンの立ち上がりエッジでキャプチャー。
 − ICP1ピンの立ち下がりエッジでキャプチャー。
icnc = 0
1
 − キャプチャー入力ICP1ピンの、ノイズ除去機能をオフにします。
 − キャプチャー入力ICP1ピンの、ノイズ除去機能をオンにします。

・ATmega88等の、「WGM13」ビットの設定方法が不明なため、このビットをセットする場合は、
 
CONFIG TIMER1行の次で、「Set TCCR1B.4」の様にレジスターへ直接設定して下さい。



CONFIG TIMER2 一覧へ戻る
ハードウェア タイマー 2 を、設定します。

(1)TIMERモードの設定。 (AVRクロックを、タイマーのクロックに使用します)
 
書式 Config Timer2 = Timer , Prescale = value , Clear Timer = clr ,
                     Compare x = oc2x , Async = as
注釈
value =
 
プリスケール(前段分周)の値。
  (一部のチップでは5種類)
 ( 1 , 8 , 32 , 64 , 128 , 256 , 1024 )
 ( 1 , 8 , 64 , 256 , 1024 )
Clear Timer = clrは、比較器[OCR2x]を使用する場合に記述。
 TIMER2[TCNT2]と比較器[OCR2x]が一致した時、
clr = 0
1
 − オーバーフロー動作。
 − 比較一致 CTC動作。
 TIMER2[TCNT2]をクリアしない。
 TIMER2[TCNT2]をクリアする。
Compare x = oc2xは、比較出力[OC2x]ピンを使用する場合に記述。
x = なし
A

B
 − 比較器が1つのチップの場合。
 − 比較器Aを設定。
 − 比較器Bを設定。
oc2x = Clear
Set
Toggle
Disconnect
 − 一致発生で、[OC2x]ピンをL(0)にします。
 − 一致発生で、[OC2x]ピンをH(1)にします。
 − 一致発生で、[OC2x]ピンを反転します。
 − [OC2x]ピンを使用しません。 (デフォルト)
TOSC1とTOSC2ピンに、外部発振素子(クリスタル等)を接続する場合に記述。
as = Off
On
 − AVRのクロックを使用する。 (デフォルト)
 − 外部発振素子のクロックを使用する。

注.比較器に数値を入れる場合。
  1.比較器が1つのチップ
   ・[COMPARE2] , [OCR2] は、同じ扱いです。
  2.比較器がA , B 2つのチップ
   ・[OCR2A] , [COMPARE2A] , [PWM2A] は、同じ扱いです。 (新バージョンから)
   ・[OCR2B] , [COMPARE2B] , [PWM2B] は、同じ扱いです。 (新バージョンから)

 
(2)COUNTERモードの設定。
(AVRクロックと前段分周の代わりに、外部クロックが使用されます)
 
・TIMER2用の外部クロックT2ピンが搭載されているチップのみ有効。
 
書式 Config Timer2 = Counter , Edge = edge , Clear Timer = clr ,
                     Compare x =
oc2x , Async = as
注釈
edge =
Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント。
以下、TIMERモードの設定と同じ。

 
(3)PWMモードの設定。
 
書式 Config Timer2 = Pwm , Clear Timer = clr , Compare x Pwm = oc0x ,
                     Prescale = value
, Async = as
注釈 Clear Timer = clr (PWMモードでは、使い方が変わります)
clr = 0
1
 − Phase Correct PWM Mode
 − Fast PWM Mode
 (位相基準PWMモード)
 (高速PWMモード)
Compare x Pwm = oc0xは、比較出力[OC0x]ピンを使用する場合に記述。
x = なし
A
B
 − 比較器が1つのチップの場合。
 − 比較器Aを設定。
 − 比較器Bを設定。
oc0x = Clear Up
Clear Down
Disconnect
 − 上昇計数時一致発生でL(0)、下降時でH(1)にします。
 − 上昇計数時一致発生でH(1)、下降時でL(0)にします。
  − [OC0x]ピンを使用しません。 (デフォルト)
value =
 
プリスケール(前段分周)の値。
  (一部のチップでは7種類)
 ( 1 , 8 , 64 , 256 , 1024 )
 ( 1 , 8 , 32 , 64 , 128 , 256 , 1024 )
外部クロックを使用する場合は、Edge = edge
edge =
Rising
Falling
 − 外部クロックの立ち上がりエッジでカウント。
 − 外部クロックの立ち下がりエッジでカウント。
TOSC1とTOSC2ピンに、外部発振素子(クリスタル等)を接続する場合に記述。
as = Off
On
 − AVRのクロックを使用する。 (デフォルト)
 − 外部発振素子のクロックを使用する。



LOAD 一覧へ戻る
ハードウェア タイマーの、Timer/Counter レジスターに、任意の値を設定します。

書式 Load Timer , Value
注釈
Timer ハードウェア タイマー名。 (TIMER0 , TIMER1 , TIMER2
Value Timer/Counter レジスターにセットする値。 ( 1〜256 or 1〜65536 )

 
・設定値は、1でレジスターに&HFF(&HFFFF)が入り、 256(65536)でレジスターに&H00が入ります。
Timer0 = Value , Timer1 = Value , Timer2 = Value は、Valueの値をそのままレジスターに
 入れます。
 
(例) ハードウェア タイマー割り込みにより、ポートCピン0から1,000Hzの方形波を出力。
$regfile = "m8535.DAT" ' AVRデバイスを"ATmega8535"に設定。
$crystal = 12800000 ' クロック周波数を12.8MHzに設定。
Config PINC.0 = Output ' ポートCピン0を出力ポートに設定。
Config Timer0 = Timer ' Prescale = 256 ' TIMER0を設定。
Set TCCR0.2 ' mega8535にあるTIMER0のプリスケラーバグ。
Load Timer0 , 25 ' TIMER0を1/50 (25x2)に設定。
On Timer0 Tint0 ' オーバーフロー割り込みルーチンのラベルを設定。
Enable Timer0 ' TIMER0オーバーフロー割り込みを許可。
Enable Interrupts ' すべての割り込みを許可。
Do ' 繰り返し処理。
Loop '
End ' プログラムの終了。
' '
Tint0: ' TIMER0オーバーフロー割り込み処理ルーチン。
Load Timer0 , 25 ' TIMER0を1/50 (25x2)に設定。
Toggle PORTC.0 ' ポートCピン0の状態を反転。
Return ' 割り込み処理ルーチンの終了。
 


CONFIG WATCHDOG 一覧へ戻る
ウォッチドッグ タイマーを、設定します。

書式 Config Watchdog = time
注釈
time

ウォッチドッグ タイマーの設定時間。 (mS)
 ( 16 , 32 , 64 , 128 , 256 , 512 , 1024 , 2048 ) ( 4096 , 8192 )

参照 START WATCHDOG , STOP WATCHDOG , RESET WATCHDOG

 
・ウォッチドッグ タイマーにより、リセットまたは割り込みが発生するまでの時間を設定します。
・メインルーチンのような動作の中核となる処理内で、ウォッチドッグ タイマーを定期的に再スタート
 させるようにプログラムを組みます。
・ウォッチドッグ タイマーに設定した時間を超えると、リセットまたは割り込みが発生します。
 
・ウォッチドッグ タイマーとは、ノイズ等によりプログラムが停止または暴走した場合に、強制的に
 リセットを行い、動作を正常に戻すための安全装置です。
・下記例題のように、リセットが起きた時点で[MCUSR]レジスタの内容を確認し、適切な処理を行う
 ようにプログラムを構成します。
 
(例) リセットが発生した要因を表示します。
    Reset Watchdog行により、ウォッチドッグの監視が続きます。
$regfile = "m88pdef.dat" ' AVRデバイスを"ATmega88P"に設定。
$crystal = 16000000 ' クロック周波数を16MHzに設定。
Dim T_mcusr As Byte ' リセットの要因を示す[MCUSR]レジスタの保管用。
T_mcusr = Peek(0) ' リセットの要因を示す[MCUSR]レジスタを保管する。
' Config Lcd = ・・・ ' LCDの初期設定命令を記述する。
' '
Dim Tempstr As String * 20 ' 汎用テンポラリ変数 String型
If T_mcusr.porf = 1 Then Tempstr = "Power-on Reset"
If T_mcusr.borf = 1 Then Tempstr = "Brown-out Reset"
If T_mcusr.extrf = 1 Then Tempstr = "External Reset"
If T_mcusr.wdrf = 1 Then Tempstr = "Watchdog Reset"
Locate 1 , 1 ' リセットの要因を表示する。
Lcd Tempstr '
Locate 2 , 1 ' [MCUSR]レジスタの内容を表示する。
Lcd "MCUSR=" ; Hex(t_mcusr) '
' '
Dim A As Byte '
Config Watchdog = 2048 ' ウォッチドッグ タイマーの時間を設定。
Start Watchdog ' ウォッチドッグ タイマーの監視を開始。
' '
Do ' 繰り返し処理。
Locate 2 , 12 ' 100mSのカウント値を表示する
Lcd A ; "  " '
A = A + 1 '
Waitms 100 ' 100mSの待ち時間。
'Reset Watchdog ' ウォッチドッグ タイマーを再スタート。
' コメントを外すと、ウォッチドッグが有効になります。
Loop '
End ' プログラムの終了。

・リセットの要因を示す[MCUSR]レジスタの保管命令は、必ずプログラムの冒頭に記述して下さい。
・これは、BASCOM-AVR特有の処理方法です。([MCUSR]レジスタがR0に保管されているため)



CONFIG ADC 一覧へ戻る
A/Dコンバータを、設定します。

書式 Config ADC = mode , Prescaler = clock , Reference = vref
注釈
mode Single
Free
 − シングル動作。 (単発変換動作)
 − フリーラン動作。 (連続変換動作)
A/D変換に使用する、クロックを選択します。
clock Auto − コンパイラが、適切な値を自動的に選択します。
( 2 , 4 , 8 , 16 , 32 , 64 , 128 ) − 任意のクロック分周値。
基準電圧を選択できるチップのみ使用できます。 (オプション・代表例)
vref Off
Avcc
Internal
 − AREF端子は、内部電位回路から切り離されます。
 − AREF端子は、内部でAVCCに接続されます。
 − AREF端子は、内部で2.56V等の基準電圧に接続されます。

参照 GETADC

 
・ フリーラン動作は、ヘルプファイルにも記述が無く、BASCOMからの操作方法は不明です。
 
・ 基準電圧の選択リスト。(一部チップの参考値)
 
チップ名 基準電圧の設定
Reference =
ADC_REFMODEL=X
($regfile内の
モデル番号)
2233 , 4433 , 4434
8535 , Mega103 , Mega603 , Mega128103
OFF
AVCC
0
Mega165 , Mega169 , Mega325 , Mega3250
Mega645 , Mega6450 , Mega329 , Mega3290
Mega649 , Mega6490
Mega48 , Mega88 , Mega168 , Mega328
OFF
AVCC
INTERNAL or INTERNAL_1.1
1
Tiny15 , Tiny26 AVCC
OFF
INTERNAL
INTERNALEXTCAP
2
Tiny13 AVCC
INTERNAL
3
Tiny24 , Tiny44 , Tiny84 AVCC
EXTERNAL or OFF
INTERNAL or INTERNAL_1.1
4
Mega164 , Mega324 , Mega644
Mega640 , Mega1280
Mega1281 , Mega2561
Mega2560
AREF or OFF
AVCC
INTERNAL1.1
INTERNAL_2.56
5
Tiny261 , Tiny461 , Tiny861
Tiny25 , Tiny45 , Tiny85
AVCC
EXTERNAL or OFF
INTERNAL_1.1
INTERNAL_2.56_NOCAP
INTERNAL_2.56_EXTCAP
7
CAN128 , PWM2_3 , USB1287
Mega128 , Mega16 , Mega163
Mega32 , Mega323 , Mega64
AREF or OFF
AVCC
INTERNAL or INTERNAL_2.56
8

(例)1秒毎にアナログ入力0をA/D変換し、結果を出力します。
$regfile = "m8535.DAT" ' AVRデバイスを"ATmega8535"に設定。
$crystal = 12800000 ' クロック周波数を12.8MHzに設定。
$baud = 9600 ' ボーレートを9600ボーに設定。
Dim W As Word ' 使用する変数を宣言。
Config ADC = Single , Prescaler = Auto ' A/Dコンバータの設定。
Start ADC ' A/Dコンバータに電源を供給。
Do ' 繰り返し処理。
W = Getadc(0) ' アナログ入力0の変換値を変数へ代入。
Print W ' 変換値を出力。
Wait 1 ' 1秒の待ち時間。
Loop '
End ' プログラムの終了。



GETADC 一覧へ戻る
A/Dコンバータを始動し、変換した値を変数に読み込みます。

書式 variable = Getadc(channel , extension)
注釈
variable 変換した値を入れる変数名。 (ワード型)
channel アナログ入力のチャネル番号。 ( 0 〜 )
新しいチップに追加された、左揃えモードや差動入力を設定します。 (オプション)
channelextensionが論理和された後、ADMUXレジスターに書き込まれます。
extension 追加設定値の定数または変数。 ( bit5 , bit4 , bit3 )

参照 CONFIG ADC

 
GETADC命令は、A/Dコンバータのシングル動作で使用します。
GETADC命令が実行されると、A/Dコンバータが始動され、A/D変換が終了するまで待ってから、
 変換値を変数に代入して、この命令を終わります。
・よって、変換中はプログラムが停止しています。 (割り込みは動作します)

(例) A/D変換精度をバイト型に落とし、割り込みにより随時A/D値を取得します。
$regfile = "m8535.DAT" ' AVRデバイスを"ATmega8535"に設定。
$crystal = 12800000 ' クロック周波数を12.8MHzに設定。
$baud = 9600 ' ボーレートを9600ボーに設定。
Dim A As Byte ' 使用する変数を宣言。
Config ADC = Single , Prescaler = Auto ' A/Dコンバータの設定。
On ADC Adint ' A/D終了割り込みルーチンのラベルを設定。
Enable ADC ' A/D変換終了割り込みを許可。
Enable Interrupts ' すべての割り込みを許可。
Start Adc ' A/Dコンバータに電源を供給。
' '
A = Getadc(0 , &H20) ' アナログ入力0、左揃えモードを設定。
Do ' 繰り返し処理。
Print A ' 変換値を出力。
Wait 1 ' 1秒の待ち時間。
Loop '
End ' プログラムの終了。
' '
Adint: ' A/D変換終了割り込みルーチン。
A = ADCH ' A/Dデータレジスターの上位を変数へ代入。
Set ADCSR.6 ' A/Dコンバータを再始動。
Return ' 割り込み処理ルーチンの終了。



CONFIG ACI 一覧へ戻る
アナログ比較器(コンパレーター)を、設定します。

書式 Config Aci = power , Compare = capture , Trigger = mode
注釈
power On
Off
 − アナログ比較器の電源を入れます。
 − アナログ比較器の電源を切ります。
START Ac と同じ)
Stop Ac と同じ)
アナログ比較器によって起動される、タイマー1のキャプチャー機能を許可します。
capture On
Off
 − キャプチャー機能を許可。
 − キャプチャー機能を禁止。
アナログ比較器の、割り込み条件を指定します。
mode Toggle
Falling
Rising
 − 立ち上がり立ち下がりの両エッジで割り込みが発生します。
 − 立ち下がりエッジで割り込みが発生します。
 − 立ち上がりエッジで割り込みが発生します。

 
・アナログ比較器(コンパレーター)は、リセットの初期状態で電源がONになっていますので、
 電力を削減するためにはOFFにする必要があります。



START device 一覧へ戻る
指定されたハードウェア機器を、始動させます。

書式 Start device
注釈
device 始動させる機器名。 (下記リスト参照)

参照 STOP device

 
・機器名のリスト。
 
TIMER0 , COUNTER0 ハードウェア タイマー0 の、計数を開始します。
TIMER1 , COUNTER1 ハードウェア タイマー1 の、計数を開始します。
TIMER2 , COUNTER2 ハードウェア タイマー2 の、計数を開始します。
WATCHDOG ウォッチドッグ タイマーの、計数を開始します。
ADC A/Dコンバータに、電源を供給します。
AC アナログ比較器に、電源を供給します。



STOP device 一覧へ戻る
指定されたハードウェア機器を、停止させます。

書式 Stop device
注釈
device 始動させる機器名。 (下記リスト参照)

参照 START device , STOP

 
STOP命令のみで記述された場合は、プログラムが停止します。
 
・機器名のリスト。
 
TIMER0 , COUNTER0 ハードウェア タイマー0 の、計数を中断します。
TIMER1 , COUNTER1 ハードウェア タイマー1 の、計数を中断します。
TIMER2 , COUNTER2 ハードウェア タイマー2 の、計数を中断します。
WATCHDOG ウォッチドッグ タイマーの、計数を中断します。
ADC A/Dコンバータへの、電源供給を切ります。
AC アナログ比較器への、電源供給を切ります。



ON interrupt 一覧へ戻る
指定された割り込みが発生した場合に、実行するサブルーチン名を指示します。

書式 ON intname label [NOSAVE]
注釈
intname 割り込みの種別。 (下記リスト参照)
label 割り込み発生時に実行するサブルーチン名。
NOSAVE = 

割り込み発生時に、全レジスターの待避・復帰を行いません。
 (割り込み処理ルーチンをアセンブラで書く場合のオプション)

参照 ENABLE , DISABLE , ON value

 
・使用可能な割り込み名は、チップにより違うので、「$regfile =」で使用するレジファイル内の
 後に記載された、[INTS]行を確認して下さい。
 
・割り込みの種別。 (代表例)
 
INT0 , INT1 , INT2 〜 外部割り込み。 (チップにより数が違います)
PCINT
PCINT0 , PCINT1 〜
ピン変化割り込み。 (チップにより数が違います)
TIMER0 = OVF0
TIMER1 = OVF1
TIMER2 = OVF2
ハードウェア タイマー、オーバーフロー割り込み。
COMPARE0 = OC0
COMPARE0A = OC0A
COMPARE0B = OC0B
COMPARE1 = OC1
COMPARE1A = OC1A
COMPARE1B = OC1B
COMPARE2 = OC2
COMPARE2A = OC2A
COMPARE2B = OC2B
ハードウェア タイマー、比較一致割り込み。
CAPTURE1 = ICP1 タイマー1、キャプチャー割り込み。
WDT ウォッチドッグ タイマー、発生割り込み。
ADC , ADCC A/Dコンバータ、変換終了割り込み。
ACI アナログ比較器、比較割り込み。
URXC , UDRE , UTXC UART、送受信割り込み。
SPI SPI(シリアル周辺インターフェース)、転送完了割り込み。
TWI 2線シリアル インターフェース、作業完了割り込み。
EEPROM = ERDY EEPROM、Ready割り込み。

・通常、割り込み発生時には、割り込みサブルーチン内で使用されるレジスターが待避され、
 割り込みサブルーチンの終了時に復帰されます。 (NOSAVEオプションが省略された場合と同じ)
・ただし、R6,R8,R9を除いた、SREGとR0からR11およびR16からR31です。
 
・浮動小数点演算が使用するR12からR15は待避されないので、割り込みサブルーチン内で浮動
 小数点型の変数を使用する場合は、自身のプログラムでR12からR15の待避・復帰が必要になります。
・SingleやDouble変数を使う浮動小数点演算は非常に多くの時間がかかるので、割り込み処理内での
 使用は推奨されません。
・BASCOMでは、割り込みサブルーチン内でSingleやDouble変数を使わないのが前提です。
 
NOSAVEオプションを記述した場合は、割り込み処理内で使用するレジスタを待避する命令を、
 必ず記述して下さい。



ENABLE 一覧へ戻る
指定された割り込みを、許可します。

書式 Enable intname
注釈
intname 割り込みの種別。 (下記リスト参照)

参照 DISABLE

 
・外部リセットからの起動で、すべての割り込みは禁止されています。
ENABLE命令で、使用する割り込みを、それぞれ可能にしておきます。
 (この命令だけでは、まだ割り込みは許可されていません)
Enable Interrupts命令で、割り込みを許可します。
 
・割り込みの種別。 (代表例)
 
INT0 , INT1 , INT2 〜 外部割り込み。 (チップにより数が違います)
PCINT
PCINT0 , PCINT1 〜
ピン変化割り込み。 (チップにより数が違います)
TIMER0 = OVF0
TIMER1 = OVF1
TIMER2 = OVF2
ハードウェア タイマー、オーバーフロー割り込み。
COMPARE0 = OC0
COMPARE0A = OC0A
COMPARE0B = OC0B
COMPARE1 = OC1
COMPARE1A = OC1A
COMPARE1B = OC1B
COMPARE2 = OC2
COMPARE2A = OC2A
COMPARE2B = OC2B
ハードウェア タイマー、比較一致割り込み。
CAPTURE1 = ICP1 タイマー1、キャプチャー割り込み。
WDT ウォッチドッグ タイマー、発生割り込み。
ADC , ADCC A/Dコンバータ、変換終了割り込み。
ACI アナログ比較器、比較割り込み。
URXC , UDRE , UTXC UART、送受信割り込み。
SPI SPI(シリアル周辺インターフェース)、転送完了割り込み。
TWI 2線シリアル インターフェース、作業完了割り込み。
EEPROM = ERDY EEPROM、Ready割り込み。



DISABLE 一覧へ戻る
指定された割り込みを、禁止します。

書式 Disable intname
注釈
intname 割り込みの種別。 (ENABLE命令の、割り込みリストを参照)

参照 ENABLE

 
DISABLE命令で、個々の割り込みを禁止することができます。
Disable Interrupts命令で、すべての割り込みを禁止できます。



CONFIG INTx 一覧へ戻る
外部割り込みの、発生条件を設定します。

書式 Config Intx = state
注釈
x 外部割り込みの番号。 (0〜7 チップによる)
外部割り込みの発生条件。
state Low Level
Change
Falling
Rising
 − INTx ピンがLowレベルで割り込みが発生。
 − INTx ピンの両エッジで割り込みが発生。
 − INTx ピンの立ち下がりエッジで割り込みが発生。
 − INTx ピンの立ち上がりエッジで割り込みが発生。

 
・「Change」は、チップにより使用できない場合があります。



CONFIG SPI 一覧へ戻る
SPI(Serial Peripheral Interface)を、設定します。

(1) ハードウェアSPIのための書式。 (チップにより、割り当てられたピンを使用します)
 
書式 Config Spi = Hard , Master = Yes|no , Interrupt = On|Off , Data Order = Lsb|Msb , Phase = 0|1 , Polarity = Low|High , Clockrate = 4|16|64|128 , Noss = 1|0 , Spiin = Value , Extended = 0|1
注釈  SPIを、マスターまたはスレーブのどちらで動作させるかを選びます。
Master Yes
no
 − マスター(主装置)として動作します。
 − スレーブ(従装置)として動作します。
シリアル転送が完了すると、割り込みを発生させます。
Interrupt = On
Off
 − 割り込みが発生します。 (ENABLE SPIと同じ操作)
 − 割り込みは発生しません。 (DISABLE SPIと同じ操作)
データ・ビットの転送順序を選択します。
Data Order Lsb
Msb
 − LSB(下位ビット)が最初に転送されます。
 − MSB(上位ビット)が最初に転送されます。
SCKとデータの位相関係を選択します。
Phase 0
1
 − データが先行します。 [CPHA = 0]
 − SCKが先行します。 [CPHA = 1]
SCKの極性を選択します。 (アイドル時のSCKレベル)
Polarity Low
High
 − アイドル時には[L]レベルです。 [CPOL = 0]
 − アイドル時には[H]レベルです。 [CPOL = 1]
マスター(主装置)として設定された場合の、SCKの速度を選択します。
Clockrate 4|16|64|128  − fOSC/4 , fOSC/16 , fOSC/64 , fOSC/128。
 
 fOSC = システム・クロック周波数。
マスターとして設定された場合の、/SSピン(スレーブ選択)の使用を決定します。
Noss 1
0
 − SPIは、/SSピンを使用しません。
 − /SS信号が自動生成されます。
 
・複数のスレーブ装置を選択する場合は、/SSピンの自動生成を停止して、任意に
 複数のポートで/SS信号を生成します。
 
・マスターとして設定され、Noss = 1に設定すると、/SSピンの入出力はユーザーが
 決められます。 (決める必要があります)
  出力に設定した場合は、SPIと無関係な汎用の出力ポートです。
  入力に設定した場合は、このピンを[L]にすると強制的にスレーブに切り替えられ
  ます。
SPIIN命令で、スレーブからデータを読み込むときに送信するデータを設定できます。
Spiin Value  − 送信する値。 (オプション)
 
このオプションが記述されない場合は、デフォルトで0が送信されます。
SPIIN、SPIIOUT、SPIMOVE命令で、データの最大送受信数を拡張するオプション。
Extended 0
1
 − 送受信の最大値 = 255バイト (デフォルト)
 − 送受信の最大値 = 65535バイト
 
・Set SPSR.SPI2X この書式で、マスターとして動作時のSPIクロック速度を倍にできます。
 (この機能を搭載しているチップに限る)

SPI動作モード CPHA CPOL SCKの先エッジ SCKの後エッジ 位相関係
モード 0 0 0 立ち上がりでサンプル 立ち下がりで出力設定 データが先行
モード 2 0 1 立ち下がりでサンプル 立ち上がりで出力設定
モード 1 1 0 立ち上がりで出力設定 立ち下がりでサンプル SCKが先行
モード 3 1 1 立ち下がりで出力設定 立ち上がりでサンプル

・ATMEGA328PBなどの新しいプロセッサには、2つのSPIポートがあります。
 この2番目のSPIポートを使用するには、命令文に[1]を追加する必要があります。
  (CONFIG SPI1 , SPI1IN , SPI1OUT , SPI1INIT , SPI1MOVE)


(2) ソフトウェアSPIのための書式。 (各SPI信号のポートは、任意のピンに指定が可能です)
 
・マスター(主装置)のみ。 SPI動作モード[1]、MSB(上位ビット)が最初に転送、で動作します。
書式 Config Spi = Soft , Clock = PORTX.b , Dout = PORTX.b , Din = PINX.b , Ss = PORTX.b|none , Spiin = Value , Mode = Value , Speed = Value , Setup = Value , Extended = 0|1
注釈  SPIのクロック(SCK)に割り当てる、ポート名とピン番号。
Clock = PORTX.b  X ポートの名前。 ( A , B , C , D , E , F )
 b ピンの番号。 ( 0 〜 7 )
SPIのデータ出力(MOSI)に割り当てる、ポート名とピン番号。
Dout = PORTX.b  X ポートの名前。 ( A , B , C , D , E , F )
 b ピンの番号。 ( 0 〜 7 )
SPIのデータ入力(MISO)に割り当てる、ポート名とピン番号。
Din = PINX.b  X ポートの名前。 ( A , B , C , D , E , F )
 b ピンの番号。 ( 0 〜 7 )
SPIのスレーブ選択(/SS)に割り当てる、ポート名とピン番号。
Ss = PORTX.b|none  X ポートの名前。 ( A , B , C , D , E , F )
 b ピンの番号。 ( 0 〜 7 )
 none  − /SSピンを使用しない。
 
・複数のスレーブ装置を選択する場合は、/SSピンの自動生成を停止して、任意に
 複数のポートで/SS信号を生成します。
SPIIN命令で、スレーブからデータを読み込むときに送信するデータを設定できます。
Spiin Value  − 送信する値。 (オプション)
 
このプションが記述されない場合は、0が送信されます。
SPIの動作モードを選択できます。 (オプションです。デフォルトはSPI動作モード[1])
Mode = Value  − SPIの動作モード。 ( 0 〜 3 )
 
このプションが記述されると、以下の「SPEED」と「SETUP」も指定できます。
 
クロック(SCK)の前後に、遅延を投入します。
(1を指定すると、合計2μSの遅延がSCKに追加されます)
Speed =  Value  − 遅延時間。 (μS)  デフォルトは0。
 
データ入力(MISO)ピンをサンプリングする前に、遅延を投入します。
Setup =  Value  − 遅延時間。 (μS)  デフォルトは0。
SPIIN、SPIIOUT、SPIMOVE命令で、データの最大送受信数を拡張するオプション。
Extended 0
1
 − 送受信の最大値 = 255バイト (デフォルト)
 − 送受信の最大値 = 65535バイト

 
参照 SPIINIT , SPIIN , SPIOUT , SPIMOVE



SPIINIT 一覧へ戻る
SPIピンを初期化します。

書式 Spiinit
注釈 なし

参照 CONFIG SPI , SPIIN , SPIOUT , SPIMOVE

 
CONFIG SPI命令の後に、SPIが使用するポートピンを、それぞれの入出力方向に設定します。
・他のルーチンがSPIピンの状態を変更した場合には、SPIINとSPIOUT命令を使う前に、再びSPIINITを
 実行してください。



SPIIN 一覧へ戻る
SPIバスから、データを読み込みます。

書式 Spiin variable , Bytes
注釈
variable データを読み込む数値変数 または 配列。 (バイト型)
Bytes 読み込むバイト数。 (最大256個)

参照 CONFIG SPI , SPIINIT , SPIOUT , SPIMOVE

 
・SPIスレーブ装置からデータを読み込むためには、マスターが最初にいくつかのデータを送る必要が
 あります。



SPIOUT 一覧へ戻る
SPIバスへ、データを送ります。

書式 Spiout variable , Bytes
注釈
variable 出力するデータを入れた数値変数 または 配列。 (バイト型)
Bytes 送るバイト数。 (最大256個)

参照 CONFIG SPI , SPIINIT , SPIIN , SPIMOVE

 
・1バイトが送られた後に、SPSRレジスターのSPIFビットがチェックされ、次のデータを送る準備が
 できていることを確認します。



SPIMOVE 一覧へ戻る
SPIバスへ、データを送受信します。

書式 variable = Spimove(Bytes)
注釈
variable 送受信するデータ用の数値変数 または 配列。 (バイト型)
Bytes 送受信するバイト数。 (最大256個)

参照 CONFIG SPI , SPIINIT , SPIIN , SPIOUT



CLOCKDIVISION 一覧へ戻る
システム・クロックの分周値を設定します。 (クロック分周制御レジスタXDIV用) [mega64,mega128等]

書式 Clockdivision = value
注釈
value システム・クロックの分周値を設定する、数値変数 または 定数。

参照 CONFIG CLOCKDIV

 
・設定値は、2〜129です。
・設定値に0を入れると、分周をしません。
 
・分周を使用すると、システム・クロックに依存している、いくつかの命令が正常に働かなくなります。
 (分周値に2を設定した場合、WAITMSは、2倍の時間がかかります)



CONFIG CLOCKDIV 一覧へ戻る
システム・クロックの分周値を設定します。 (クロック前置分周レジスタCLKP用) [mega88,mega164等]

書式 Config Clockdiv = value
注釈
value システム・クロックの、前置分周器に設定する分周値。

参照 CLOCKDIVISION , $CRYSTAL

 
・前置分周器の設定値は、1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 , 256 です。
・デフォルト値は1です。
・前置分周器の値を変更する場合は、$CRYSTAL命令の動作クロック周波数も変更する必要が
 あります。
 (8MHzのクリスタルで、前置分周器に8を設定した場合は、$CRYSTAL = 1000000 にして下さい)



CONFIG POWERMODE 一覧へ戻る
AVRを、搭載されているスリープ・モードの1つに移行させます。 (新命令)

書式 Config Powermode = mode
注釈
mode 移行させるスリープのモード名。 (参考例、チップによって異なります)
MegaとTiny用 : Idle, Powerdown, Standby, Adcnoise, Powersave
XMega用 : Idle, Powerdown, Powersave, Standby, Exstandby

参照 POWER mode , IDLE , POWERDOWN , POWERSAVE

 
・移行できるスリープモードは、チップに依存します。
・各モードとその正確な動作はAVRチップによって異なります。
・各チップのデータシートを参照してください。
 
POWER mode命令も使用できますが、新規の開発には新しい CONFIG POWERMODE 命令を
  使用してください。




POWER mode 一覧へ戻る
AVRを、搭載されているスリープ・モードの1つに移行させます。 (旧命令)

書式 Power mode
注釈
mode 移行させるスリープのモード名。
IDLE , POWERDOWN , STANDBY , ADCNOISE , POWERSAVE

参照 CONFIG POWERMODE , IDLE , POWERDOWN , POWERSAVE

 
・移行できるスリープモードは、チップに依存します。
・POWERDOWN、IDLE、POWERSAVE命令も使うことができますが、新しいPOWER命令は、
 より多くのモードが使用できるようになります。
・POWER()関数と混同しないで下さい。
 
※ POWER()関数と混同するため、このPOWER mode命令も推奨されません。
※ 代わりに、新しい CONFIG POWERMODE 命令を使用してください。




IDLE 一覧へ戻る
AVRを、アイドル モードに移行させます。 (旧命令)

書式 Idle
注釈 なし

参照 CONFIG POWERMODE , POWER mode , POWERDOWN , POWERSAVE

 
・アイドル モードでは、システムクロックが停止されますが、タイマークロックや、割り込み、
 シリアルポート等のインターフェイス機能は動作し続けます。
・アイドル動作は、割り込み(ウォッチドッグ・タイマー・外部のレベルトリガー・ADC)が入るか、
 RESETピンによるシステムリセットにより終わります。
・新しいチップには、電力管理のための、いくつかのオプションが用意されていますので、
 データシートを参照して下さい。



POWERDOWN 一覧へ戻る
AVRを、パワーダウン モードに移行させます。 (旧命令)

書式 Powerdown
注釈 なし

参照 CONFIG POWERMODE , POWER mode , IDLE , POWERSAVE

 
・パワーダウン モードでは、システムクロックと共に、タイマー用の外部発振器も停止します。
・AVRを起動するには、外部からのレベル割り込みかウォッチドッグ割り込み、もしくはRESETピン
 によるシステムリセットが必要です。
・新しいチップには、電力管理のための、いくつかのオプションが用意されていますので、
 データシートを参照して下さい。



POWERSAVE 一覧へ戻る
AVRを、パワーセーブ モードに移行させます。 (旧命令)

書式 Powersave
注釈 なし

参照 CONFIG POWERMODE , POWER mode , IDLE , POWERDOWN

 
・パワーセーブ モードは、搭載されていないチップもあります。
・パワーセーブ モードでは、システムクロックが停止されますが、タイマー用の外部発振器は
 動作し続けます。
・AVRを起動するには、外部からのレベル割り込みかウォッチドッグ割り込み、そしてタイマー2割り込み
 もしくはRESETピンによるシステムリセットが必要です。
・新しいチップには、電力管理のための、いくつかのオプションが用意されていますので、
 データシートを参照して下さい。





   電子工作の部屋 Top へ 前のページへ戻る