閲覧総計:7590 (本日:1 昨日:0)
「A/D変換」を利用した簡単なプログラムを作成し、24FJ64GA002の「A/D変換」機能の利用法、
稼働を確認しました。
A/D変換値(0〜1023)を用いて発光ダイオード(LED)の点滅間隔を0msec〜1023msec
にスムーズに変化させる。 07/02/03
/** * 24F64の稼働テスト 0-3V入力−LED点滅間隔変更 * (A/D値で発光ダイオード(LED)の点滅間隔を変更する) * * PIC24FJ64GA002 * A/D: RB3(AN5) (10KΩ半固定抵抗で分圧しアナログ値を生成) * LED: RB15 * *Clock: 8.0MHz 内蔵発振器使用 *電源:乾電池2本(3V) *Device Flags: *_IESO_OFF _FNOSC_FRC _FCKSM_CSDCMD _OSCIOFNC_OFF _POSCMOD_NONE *_JTAGEN_OFF _GCP_OFF _GWRP_OFF _BKBUG_OFF _COE_OFF _ICS_PGx1 _FWDTEN_OFF * *_IESO_OFF 2速度スタートアップ無効 *_FNOSC_FRC クロックは内蔵オシレータを利用(8MHz) *_FCKSM_CSDCMD 動作中のクロック切り替え&監視OFF *_OSCIOFNC_OFF RA3はI/Oとして利用 _POSCMOD_NONE 主発信機無効 *_JTAGEN_OFF JTAG無効 _GCP_OFF コードプロテクト無効 *_GWRP_OFF プログラムメモリ書込み禁止 _BKBUG_OFF デバッグモードにリセット *_COE_OFF Clip-onエミュレーション無効 *_ICS_PGx1 ICSP書き込みにPGC1/PGD1を使う FWDTEN_OFF ウォチドック無効 * * MikroC dsPIC v4.0.0.0 * コンパイルサイズ: 728byte (6,000Byte以下なら無料利用) */ void main() { //使用変数の定義 unsigned int temp; //PICの初期化 PORTB = 0b0000000000000000; //PORTBの中身ををきれいにする ADPCFG = 0b1111111111011111; //AN5は0:アナログ、他ピンは1:デジタルで使用 TRISB = 0b0000000000001000; //PORTBのRB3(AN5)を1:入力に、他は全て0:出力に設定 //初期化終わり while(1) { //アナログデータの取得 10bit(0~1023) temp = ADC_Read(5); //RB3(AN5)アナログ値を取得 //LED点滅間隔が0-1023msecで滑らかに変更する LATBbits.LATB15 = 1; //RB15をON Vdelay_ms_p24_p33(temp); LATBbits.LATB15 = 0; //RB15をOFF Vdelay_ms_p24_p33(temp); } }
★この情報は役に立ちましたか?