
■ BASCOM-AVR (DEMO) の使用方法 ■ |
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 ) |
|
・ウォッチドッグ タイマーにより、リセットまたは割り込みが発生するまでの時間を設定します。
・メインルーチンのような動作の中核となる処理内で、ウォッチドッグ タイマーを定期的に再スタート
させるようにプログラムを組みます。
・ウォッチドッグ タイマーに設定した時間を超えると、リセットまたは割り込みが発生します。
・ウォッチドッグ タイマーとは、ノイズ等によりプログラムが停止または暴走した場合に、強制的に
リセットを行い、動作を正常に戻すための安全装置です。
・下記例題のように、リセットが起きた時点で[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等の基準電圧に接続されます。 |
|
・ フリーラン動作は、ヘルプファイルにも記述が無く、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 〜 ) |
|
新しいチップに追加された、左揃えモードや差動入力を設定します。 (オプション)
channelとextensionが論理和された後、ADMUXレジスターに書き込まれます。
extension = |
追加設定値の定数または変数。 ( bit5 , bit4 , bit3 ) |
|
・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 = |
始動させる機器名。 (下記リスト参照) |
|
・機器名のリスト。
TIMER0 , COUNTER0 |
ハードウェア タイマー0 の、計数を開始します。 |
TIMER1 , COUNTER1 |
ハードウェア タイマー1 の、計数を開始します。 |
TIMER2 , COUNTER2 |
ハードウェア タイマー2 の、計数を開始します。 |
WATCHDOG |
ウォッチドッグ タイマーの、計数を開始します。 |
ADC |
A/Dコンバータに、電源を供給します。 |
AC |
アナログ比較器に、電源を供給します。 |
|
STOP device |
一覧へ戻る |
指定されたハードウェア機器を、停止させます。
書式 |
Stop device |
注釈 |
device = |
始動させる機器名。 (下記リスト参照) |
|
・STOP命令のみで記述された場合は、プログラムが停止します。
・機器名のリスト。
TIMER0 , COUNTER0 |
ハードウェア タイマー0 の、計数を中断します。 |
TIMER1 , COUNTER1 |
ハードウェア タイマー1 の、計数を中断します。 |
TIMER2 , COUNTER2 |
ハードウェア タイマー2 の、計数を中断します。 |
WATCHDOG |
ウォッチドッグ タイマーの、計数を中断します。 |
ADC |
A/Dコンバータへの、電源供給を切ります。 |
AC |
アナログ比較器への、電源供給を切ります。 |
|
ON interrupt |
一覧へ戻る |
指定された割り込みが発生した場合に、実行するサブルーチン名を指示します。
書式 |
ON intname label [NOSAVE] |
注釈 |
intname = |
割り込みの種別。 (下記リスト参照) |
label = |
割り込み発生時に実行するサブルーチン名。 |
NOSAVE =
|
割り込み発生時に、全レジスターの待避・復帰を行いません。
(割り込み処理ルーチンをアセンブラで書く場合のオプション) |
|
・使用可能な割り込み名は、チップにより違うので、「$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 = |
割り込みの種別。 (下記リスト参照) |
|
・外部リセットからの起動で、すべての割り込みは禁止されています。
・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命令の、割り込みリストを参照) |
|
・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 |
一覧へ戻る |
SPIピンを初期化します。
・CONFIG SPI命令の後に、SPIが使用するポートピンを、それぞれの入出力方向に設定します。
・他のルーチンがSPIピンの状態を変更した場合には、SPIINとSPIOUT命令を使う前に、再びSPIINITを
実行してください。
|
SPIIN |
一覧へ戻る |
SPIバスから、データを読み込みます。
書式 |
Spiin variable , Bytes |
注釈 |
variable = |
データを読み込む数値変数 または 配列。 (バイト型) |
|
Bytes = |
読み込むバイト数。 (最大256個) |
|
・SPIスレーブ装置からデータを読み込むためには、マスターが最初にいくつかのデータを送る必要が
あります。
|
SPIOUT |
一覧へ戻る |
SPIバスへ、データを送ります。
書式 |
Spiout variable , Bytes |
注釈 |
variable = |
出力するデータを入れた数値変数 または 配列。 (バイト型) |
|
|
・1バイトが送られた後に、SPSRレジスターのSPIFビットがチェックされ、次のデータを送る準備が
できていることを確認します。
|
SPIMOVE |
一覧へ戻る |
SPIバスへ、データを送受信します。
書式 |
variable = Spimove(Bytes) |
注釈 |
variable = |
送受信するデータ用の数値変数 または 配列。 (バイト型) |
|
Bytes = |
送受信するバイト数。 (最大256個) |
|
|
CLOCKDIVISION |
一覧へ戻る |
システム・クロックの分周値を設定します。 (クロック分周制御レジスタXDIV用) [mega64,mega128等]
書式 |
Clockdivision = value |
注釈 |
value = |
システム・クロックの分周値を設定する、数値変数 または 定数。 |
|
・設定値は、2〜129です。
・設定値に0を入れると、分周をしません。
・分周を使用すると、システム・クロックに依存している、いくつかの命令が正常に働かなくなります。
(分周値に2を設定した場合、WAITMSは、2倍の時間がかかります)
|
CONFIG CLOCKDIV |
一覧へ戻る |
システム・クロックの分周値を設定します。 (クロック前置分周レジスタCLKP用) [mega88,mega164等]
書式 |
Config Clockdiv = value |
注釈 |
value = |
システム・クロックの、前置分周器に設定する分周値。 |
|
・前置分周器の設定値は、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 |
|
・移行できるスリープモードは、チップに依存します。
・各モードとその正確な動作はAVRチップによって異なります。
・各チップのデータシートを参照してください。
※ POWER mode命令も使用できますが、新規の開発には新しい CONFIG POWERMODE 命令を
使用してください。
|
POWER mode |
一覧へ戻る |
AVRを、搭載されているスリープ・モードの1つに移行させます。 (旧命令)
書式 |
Power mode |
注釈 |
mode = |
移行させるスリープのモード名。
IDLE , POWERDOWN , STANDBY , ADCNOISE , POWERSAVE |
|
・移行できるスリープモードは、チップに依存します。
・POWERDOWN、IDLE、POWERSAVE命令も使うことができますが、新しいPOWER命令は、
より多くのモードが使用できるようになります。
・POWER()関数と混同しないで下さい。
※ POWER()関数と混同するため、このPOWER mode命令も推奨されません。
※ 代わりに、新しい CONFIG POWERMODE 命令を使用してください。
|
IDLE |
一覧へ戻る |
AVRを、アイドル モードに移行させます。 (旧命令)
・アイドル モードでは、システムクロックが停止されますが、タイマークロックや、割り込み、
シリアルポート等のインターフェイス機能は動作し続けます。
・アイドル動作は、割り込み(ウォッチドッグ・タイマー・外部のレベルトリガー・ADC)が入るか、
RESETピンによるシステムリセットにより終わります。
・新しいチップには、電力管理のための、いくつかのオプションが用意されていますので、
データシートを参照して下さい。
|
POWERDOWN |
一覧へ戻る |
AVRを、パワーダウン モードに移行させます。 (旧命令)
・パワーダウン モードでは、システムクロックと共に、タイマー用の外部発振器も停止します。
・AVRを起動するには、外部からのレベル割り込みかウォッチドッグ割り込み、もしくはRESETピン
によるシステムリセットが必要です。
・新しいチップには、電力管理のための、いくつかのオプションが用意されていますので、
データシートを参照して下さい。
|
POWERSAVE |
一覧へ戻る |
AVRを、パワーセーブ モードに移行させます。 (旧命令)
・パワーセーブ モードは、搭載されていないチップもあります。
・パワーセーブ モードでは、システムクロックが停止されますが、タイマー用の外部発振器は
動作し続けます。
・AVRを起動するには、外部からのレベル割り込みかウォッチドッグ割り込み、そしてタイマー2割り込み
もしくはRESETピンによるシステムリセットが必要です。
・新しいチップには、電力管理のための、いくつかのオプションが用意されていますので、
データシートを参照して下さい。
|
|