Re: 關於PIC16F877的AD中斷...
|
||||
---|---|---|---|---|
版主
|
有可能 AD 轉換的時間太快了,你的系統才跑500kHz,當你設定 GO bit 啟動AD 轉換後,程式還沒跑到RETFIE 下一個AD 中斷就再等你處理了。
建議將 BSF ADCON0,GO 擺在RETFIE 前面看看,或程式改用Polling的方式也可以。
發表於: 2005/8/16 17:22
|
|||
|
關於PIC16F877的AD中斷...
|
||||
---|---|---|---|---|
新會員
|
AD轉換完之後,要再次執行轉換,必須將ADCON0中的GO設為HIGH。
但是我在AD中斷中做此動作,程式卻無法動作。 我是直接燒到PIC16F877接電路測試的。 直接在MPLAB上Debug看不出什麼異狀,一切都很正常。 (也就是用watch看register,跑的都很正常) 這個程式的目的是要將RA0輸入的類比轉成數位,並且輸出於PORTC,並且使用AD中斷的方法。 以下是不能跑的程式碼:
list p = 16f877
但是如果我把MAIN_PROC改成以下程式碼
MAIN_PROC:
這樣的話,程式燒到PIC16F877之後,就可以正常執行了! 在PORTC也可看到轉成數位後的8 BIT! 但是這樣對於AD的使用會有點小麻煩,因為MAIN_PROC還想讓他做其他事情。 不知道為什麼會這樣呢? 請各位高手幫忙一下吧! 謝謝! 附加說明於2005/08/16: 對了!! 我是使用外部RC內部震盪 用示波器測過,fcyc約為500KHz~520KHz
發表於: 2005/8/15 16:41
|
|||
|