RX62Nの12bitAD変換器を動かすプログラムのサンプルです。
- #include <stdio.h>
- #include <machine.h>
- #include "iodefine.h"
- /*
- * 12bit A/Dコンバータ初期化
- * AN0のみ使用
- */
- void s12ad_init(void) {
- MSTP(S12AD) = 0;
- delay_ms(100); // AD変換回路が安定するのを待つ
- PORT4.DDR.BIT.B0 = 0; // AN0を使用するためデジタル入力に
- S12AD.ADCSR.BIT.CKS = 0x03; // クロック PCLK/1
- S12AD.ADANS.BIT.ANS = 0x01; // AN0のみ変換
- S12AD.ADCER.BIT.ADRFMT = 0; // 保存データは右詰め
- }
- /*
- * AD変換を実行
- */
- unsigned short get_s12ad(void) {
- int i;
- unsigned short adv;
- S12AD.ADCSR.BIT.ADST = 1; // AD変換開始
- while(S12AD.ADCSR.BIT.ADST==1); // AD変換が終了するのを待つ
- adv = S12AD.ADDR0; // 結果の読み出し
- return adv;
- }
- int main(void)
- {
- int adv;
- Initialization();
- s12ad_init(); //AD変換初期化
- printf("A/D converter test.\n");
- while (1) {
- adv = get_s12ad();
- printf("AD value %d\n",adv);
- delay_ms(100);
- }
- }
※コメント投稿者のブログIDはブログ作成者のみに通知されます