Powered By 特殊電子回路

最終更新日 平成26年5月15日

English

トップ ページチュートリアル仕様・機能 ダウンロード マニュアルWebコンパイラ

RXduinoのサンプルコード

ツイート

サンプルコード集に戻る

12bit ADCのサンプル

12bit ADCを動かして、その値をUSBで送ります。RX63Nの場合はコア電圧と温度も出ます。

// RXduino sample programs.
// (C)2012-2014 Copyright TokushuDenshiKairo Inc.

// 特電HAL
#include <tkdn_hal.h>
#include <stdio.h>

#ifdef __GNUC__
  #ifdef CPU_IS_RX62N
    #include "iodefine_gcc62n.h"
  #endif
  #ifdef CPU_IS_RX63N
    #include "iodefine_gcc63n.h"
  #endif
#endif
#ifdef __RENESAS__
  #include "iodefine.h"
#endif

int main()
{
	int i;

	sci_init(SCI_AUTO,38400);
	sci_convert_crlf(CRLF_CRLF,CRLF_CRLF); // \nを\r\nに変換
	adc_init();

	sci_puts("ADC test start!!\n");
	gpio_set_pinmode(PIN_LED0,1);
	gpio_set_pinmode(PIN_LED1,1);
#ifdef CPU_IS_RX63N
	S12AD.ADSSTR23.WORD = 0xff14;
#endif

	while(1)
	{
		char tmp[128];
		for(i=0;i<8;i++)
		{
			gpio_write_port(PIN_LED0,1);
			int x = adc_sample(i);
			gpio_write_port(PIN_LED0,0);
			sprintf(tmp,"%04d ",x);
			sci_puts(tmp);
		}

#ifdef CPU_IS_RX63N
		sprintf(tmp,"内部基準電圧=%f[V] ",adc_sample(101) * 3.3 / 4096);
		sci_puts(tmp);

		gpio_write_port(PIN_LED1,1);
		double Vs = adc_sample(100) * 3.3 / 4096; // 測定電圧
		gpio_write_port(PIN_LED1,0);
		double V1 = 1.26; // 25℃での電圧
		double Slope = 0.0041; // V /℃
		double T = (Vs - V1) / Slope + 25;
		sprintf(tmp,"Vs=%f[V] ",Vs);
		sci_puts(tmp);
		sprintf(tmp,"temp=%f[℃] ",T);
		sci_puts(tmp);
#endif

		sci_puts("\n");
	}
}

動作イメージ


サンプルコード集に戻る

 

(C)2012-2014 特殊電子回路株式会社 All Rights Reserved