/*===========================*/ /* test project :: G-sensor */ /*==== (c)miyabo 2009/04/05 =*/ #include <12f675.h> #device ADC=10 //10bit AD #fuses INTRC_IO,NOWDT,PUT,NOPROTECT,NOMCLR //内部クロック使用(INTRC_IO) #use delay(CLOCK=4000000) #use rs232(baud=9600,xmit=pin_a4,rcv=pin_a3,parity=N,bits=8) //rs232使用 //各軸キャリブレート用定数 #define X_CAL 18 #define Y_CAL 6 #define Z_CAL 60 void main() { long value; //AD変換結果用 setup_adc(ADC_CLOCK_INTERNAL); //AD変換に内部クロックを使用 setup_adc_ports(sAN0|sAN1|sAN2|VSS_VDD); //pin0,1,2をAD用に while(1) { set_adc_channel(0); //pin0にセット delay_us(50); //AD変換待ち value=read_adc()-X_CAL; //キャリブレート printf("X%04lu",value); //0で埋めた4桁の数値で送信 getc(); //Arduino側が何か応答を返すまで待つ set_adc_channel(1); delay_us(50); value=read_adc()-Y_CAL; printf("Y%04lu",value); getc(); set_adc_channel(2); delay_us(50); value=read_adc()-Z_CAL; printf("Z%04lu",value); getc(); } }