ADCペリフェラル / free runningモードを試す / AD変換値をシリアル通信でPCへ送る
https://github.com/ti-nspire/AVR/tree/master/slow_scope (.vi含む)
ADCSRA
レジスタのADATE
ビットをセットしてfree runningモードにする。テキストはpyserialでデータを受けているが、ここではLabVIEWを使ってみる。
#include <avr/io.h> extern "C" { #include <util/delay.h> #include "USART.h" } static inline void initFreeRunningADC(){ ADMUX |= (1 << REFS0); // AVCCを基準電圧として使うことにする。 ADCSRA |= (1 << ADPS2) | (1 << ADPS0); // ADCへ供給するクロックの分周比を決める。32分周。 ADMUX |= (1 << ADLAR); // 10ビット変換値を左詰めにする。ADCHレジスタに上位8ビット値が格納される。 ADCSRA |= (1 << ADEN); // ADCを有効化する。 ADCSRA |= (1 << ADATE); // auto-triggerを有効化する。 ADCSRA |= (1 << ADSC); // AD変換を開始する。 } int main(){ initUSART(); initFreeRunningADC(); while(1){ transmitByte(ADCH); //printByte(ADCH); _delay_ms(50); } return 0; }