ここから本文です

PIC16F676を使ってA/Dコンバータの実験をしています。

gik********さん

2018/8/2810:47:24

PIC16F676を使ってA/Dコンバータの実験をしています。

ADCの設定に当たって、一般のマニュアル(CCS_コンパイラ)にあるように

① setup_ADC_ports(AN0) と書いてコンパイルするとエラーになります。
ところが
② setup_ADC_ports(sAN0) と書いてコンパイルすると成功になります。
なぜこのような違いがあるのでしょうか。

閲覧数:
33
回答数:
1

違反報告

ベストアンサーに選ばれた回答

kou********さん

2018/8/2811:13:08

16F676.h に設定パラメータがあります

ADC該当部分引用
////////////////////////////////////////////////////////////////// ADC
// ADC Functions: SETUP_ADC(), SETUP_ADC_PORTS() (aka SETUP_PORT_A),
// SET_ADC_CHANNEL(), READ_ADC()
// Constants used in SETUP_ADC_PORTS() are:
// or together any combination
// of the sANx constants with one
// of the others.
#define sAN0 1 //| A0
#define sAN1 2 //| A1
#define sAN2 4 //| A2
#define sAN3 8 //| A4
#define sAN4 16 //| C0
#define sAN5 32 //| C1
#define sAN6 64 //| C2
#define sAN7 128 //| C3
#define NO_ANALOGS 0 // None
// The following may be OR'ed in with the above using |
#define VSS_VDD 0x8000 // Range 0-Vdd
#define VREF_VREF 0x9000 // Range VrefL-VrefH
#define VRL_VRH 0xA000 // Range Vrl-Vrh
#define VSS_VREF 0xB000 // Range 0-VrefH
#define VSS_VRH 0xC000 // Range 0-Vrl
#define VREF_VDD 0xD000 // Range VrefL-Vdd
#define VRL_VDD 0xE000 // Range Vrl-Vdd
#define VSS_VRL 0xF000 // Range 0-Vrl
// Constants used for SETUP_ADC() are:
#define ADC_OFF 0 // ADC Off
#define ADC_CLOCK_DIV_2 1
#define ADC_CLOCK_DIV_4 0x41
#define ADC_CLOCK_DIV_8 0x11
#define ADC_CLOCK_DIV_32 0x21
#define ADC_CLOCK_DIV_16 0x51
#define ADC_CLOCK_DIV_64 0x61
#define ADC_CLOCK_INTERNAL 0x31 // Internal 2-6us

参考先
https://class.ee.washington.edu/475/peckol/code/PIC/Devices/16F676....

質問した人からのコメント

2018/8/28 12:19:48

そうでしたか。気が付きませんでした。他の使用例を見て「s」が付いていることに気が付いたのですが、これで安心して眠れます。ありがとうございます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる