[問題] 2051 analog comparator問題

看板C_and_CPP (C/C++)作者 (我也不願意)時間11年前 (2015/01/23 18:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(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
文章代碼(AID): #1KmXznpH (C_and_CPP)
文章代碼(AID): #1KmXznpH (C_and_CPP)