2020-06-29から1日間の記事一覧

ADコンバーター / 変換が完了したら割り込む / Cで記述する

p.438 前回と同じことをCで記述する。 #include <avr/io.h> #include <avr/interrupt.h> ISR(ADC_vect){ PORTD = ADCL; // AD変換が完了したらAD変換値を読み出す。 PORTB = ADCH; ADCSRA |= (1 << ADSC); // 変換開始ビットをセットし直す。 } int main(){ DDRB = 0xFF; DDRD = 0xFF; A</avr/interrupt.h></avr/io.h>…

ゆっくり変化する三角波

Slow_Triangle_Wave.vi https://github.com/ti-nspire/vi/tree/master/Slow_Triangle_Wave 波形生成用のVIは使わずに、最初に波形テーブルを作っておいて各要素を順番に出力する。myDAQのAI0±に何か電圧を入力し、それをピーク値とする三角波をmyDAQのAO0か…

ADコンバーター / 変換が完了したら割り込む

pp.436-438 今度は変換完了時に割り込む。0 v→基準電圧→0 v→基準電圧→... の順にごくゆっくり変化する電圧をAD変換してみる。 ; スタックポインタの初期化マクロ .MACRO INITSTACK LDI R16, HIGH(RAMEND) OUT SPH, R16 LDI R16, LOW(RAMEND) OUT SPL, R16 .E…

ADコンバーター / 変換完了をポーリングで確認する / Cで記述する

p.437 前回と同じことを今度はCで記述してみる。 #include <avr/io.h> int main(){ DDRB = 0xFF; DDRD = 0xFF; ADMUX |= (1 << REFS0); // 基準電圧はAVCC ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); // 128分周。ADCペリフェラルをオン。 </avr/io.h>…

ADコンバーター / 変換完了をポーリングで確認する

p.436 ここではテキストどおり変換完了割り込みフラグ(ADIF)をポーリングで監視しているが、ADCペリフェラル / CdSを使った明るさセンサー / 上位3ビット値(0~7)だけを8セグメントLEDバーに表示する -のように変換開始ビット(ADSC)がクリアされるのを監視す…