開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Keil C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
AOUT Regist沒有反應
餵入的資料(Input):
P1_0,P1_1輸入Analog Voltage
預期的正確結果(Expected Output):
AOUT = 1
錯誤結果(Wrong Output):
AOUT = 0
程式碼(Code):(請善用置底文網頁, 記得排版)
我最近不小心看到2051有analog comparator的功能
http://www.keil.com/dd/vtr/2984/2738.htm
我依照datasheet修改了AT892051.H檔,在Register新增了幾個項目(附下程式碼)
然後在P1_0,P1_1兩隻腳,利用可變電組輸入不同電壓,理論上AOUT應該要有0,1的變化,
但實際上卻沒有,是否有神人可以提點一下小弟?
感謝。
附上程式碼:
//=====AT892051.H=====
/*------------------------------------------------
Byte Registers
------------------------------------------------*/
sfr CLKREG = 0x8F;
sfr ACSR = 0x97;
sfr SADDR = 0xA9;
sfr IPH = 0xB7;
sfr SADEN = 0xB9;
然後在主程式中:
//=====main.c=====
//binary table 自己建的
#define nCF B00010000
#define nCEN B00001000
#define nCM2 B00000100
#define nCM1 B00000010
#define nCM0 B00000001
#define CF (ACSR & nCF)
main(void){
//UART初始化略,我這邊已確認UART會通了
//Analog Definition
EC = 1; //Enable Comparator Interrupt
ACSR = (nCEN | nCM1);
EA =1;
while(1){
if(AOUT)
printf("AOUT:1\n\r\a");
else
printf("AOUT:0\n\r\a");
if(CF)
printf("CF:1\n\r\a");
else
printf("CF:0\n\r\a");
}
}
補充說明(Supplement):
--
學校 系所 分數 單位 ◣ ◢ 波波表示:波波的入學門檻是很高的
國立臺灣大學 醫學系 524.32 分 ▼◤◤
國立陽明大學 醫學系 503.54 分 ◢◢ 絕對沒有誰都能念這回事
波蘭醫科大學 醫學系 482.14 萬元 ◥▲ ◣
波蘭波茲南大學 醫學系 479.42 萬元 ▼巛 ◢◤
波蘭西里西亞大學 醫學系 451.62 萬元 ▼m m ◥
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.77.139.74
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422008177.A.CD1.html