• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (Edison)




PIC16F690 INTCON疑問?
#1
新會員
新會員


請教有用過16F690的先進,我遇到一個問題。
DATASHEET中寫著INTCON是不分RAM BANK,
我使用RABIE,當中斷發生處理完後,清除RABIF,
在BANK0(STATUS=10H)及BANK2(STATUS=50H)正常離開中斷,但BANK1(STATUS=30H)及BANK3(STATUS=70H),確無法清除RABIF,亦中斷會重複進入。
先前遇過TIMER0好像也是這樣,無法清除T0IF,而重複進入
當然,也可以強制設定在BANK0清除xxxIF,但我想知道是我的失誤造成,還是MCU OR DATASHEET的問題。
目前是用16F690 HEADER測試,中斷發生後,手動切換STATUS,才知道這個現象。請有用過的先進幫忙測一下,THANKS.

發表於: 2007/4/16 16:39
頂部


Re: 求教A/D转换问题!
#2
新會員
新會員


我試了你所寫的設定,我沒有4013,使用APP009(網站有資料)測試,全部程式如下,使用ICD2 debug mode
並無不正確的值,請自行對照一下吧!

#include <p30f4011.h>
unsigned int ADCValue;
int main(void)
{
ADPCFG = 0xFFFE; // <====這和你設定不同
ADCON1 = 0x00E0;
ADCSSL = 0;
ADCON3 = 0x1F02;
ADCON2 = 0;
ADCHS = 0x0000;
ADPCFGbits.PCFG0 = 0;
ADCON1bits.ADON = 1;
while(1)
{
ADCON1bits.DONE = 0; // <+++加這一行
ADCON1bits.SAMP = 1;
while (!ADCON1bits.DONE);
ADCValue = ADCBUF0; // <===中斷觀查點
}
}


發表於: 2006/5/25 11:30
頂部


Re: 求教A/D转换问题!
#3
新會員
新會員


yuyu 寫到:
參照:

只采样AN0手动采样,只采一次,但回来的值与真实值差的很多,不知道是不是时间的的问题。
想请教您一下:我用A/D采样0--380的电压,经处理后转化成0--5的电压,对其进行12位A/D采样,回来的采样值应该如何处理啊?还有当我改变采样率的时候数据好像没什么变化,采样率不影响结果吗?
谢谢!初学,请您指教!


1. 不知您指的差很多是何種情形呢? 數值會不會隨電壓變化?
2. 先將電路與dsPIC分開,先使用電位計(可變電阻),使AN0電壓變化在0-5V之間,對照A/D數值是否在0-1023之間?
3. 您指的應如何處理是指什麼?
4. 對DC而言,若無noise干擾,A/D值是不會有太大變化,sample rate 也不會有太大影響。
5. 找問題的方法,二分法,將軟體、硬體分開,相互驗證,有問題,最好力求知道原因,如此才能更深入了解…。個人經驗。
6. 會不會在硬體有問題呢?是否方便貼個A/D區塊電路圖?
7. 很高與能和你一同找問題,找到了也不要忘了回應,與大家分享。

發表於: 2006/5/18 9:49
頂部


Re: 求教A/D转换问题!
#4
新會員
新會員


就先前使用的2010的經驗,使用AVSS在30MIPS會有差,你可先調降至1~2MIPS試試,看是否接近理論值,當然也有可能是取樣時間不足…等可能情形,最好使用Vref-為參考點。

發表於: 2006/5/13 10:35
頂部


Re: dsPIC30F2010 A/D
#5
新會員
新會員


感謝Ryang兄
我的問題解決了,最後只好採用外部參考Vref-,
目前推測是因AVSS和VSS內部連接,當耗電增加時,造成A/D誤差。

發表於: 2006/5/5 17:02
頂部


Re: dsPIC30F2010 A/D
#6
新會員
新會員


目前將振盪由x16改為XT,可以解決A/D的問題,可得到值7,
x4可得數值6,
x8為數值4,
x16為0~1,但我將取樣時間延長(1ms~100ms)也沒用,轉換時間己用32Tad,且OSC 需使用在x16,
請教是否有其它解決方法?

發表於: 2006/5/5 15:50
頂部


Re: dsPIC30F2010 A/D
#7
新會員
新會員


感謝您
1. 低於0.06V以下皆為零
2. 內阻是多少我不清楚,但用兩個不同廠牌皆可量到0.06左右的電壓,其中一個電錶為FLUKE 8060A
3. 目前跳動不是問題,而是數質為零,先前有接104,但剪掉後亦無差別

原本GND及AGND分開接,只靠IC內部連接,VDD及AVDD亦是不同回路,但現在GND及AGND外部接在一起,亦是如此。
不知硬體還有那些該注意,因有兩個2010都有類似問題,所以IC應無問題才對。
暫存器設定不知還有那些應注意?

發表於: 2006/5/5 11:59
頂部


Re: dsPIC30F2010 A/D
#8
新會員
新會員


這個電壓值是由電表所量出的,因為值小,也有可能是受電源訊號60Hz所影響,造成取平均後數值過小或跳動的問題,不知先進有何高見?
我的電路是輸入0~10V,經由op(HA17358)1:1輸出,接5K電阻及5K VR後,再接入dsPIC30F2010的AN0,量測也是指AN0對AVSS
正想是否是我取平均照成的結果??

發表於: 2006/5/5 9:54
頂部


dsPIC30F2010 A/D
#9
新會員
新會員


請問先進
使用A/D時,以AVDD(5.062V),AVSS為參考電壓,1bit約為0.0049V,
當我輸入0.05V時,得到A/D值應10,但我卻只看到1或0,
當輸入4.802V, 得到972,這個接近理論值,
是否有什麼方式可以解決0.05V輸入而得到10的結果呢?
量電壓是直接量PIN腳位和AVSS PIN,
設定如下

ADCON2 = 0x043d;
ADCON3 = 0x01f3f;
ADCHS = 0x0100;
ADCON1 = 0x0000;
ADCSSL = 0x0001;
ADCON1bits.ADON = 1;

T3CON = 0x0030;
PR3 = 115;
T3CONbits.TON = 1;

使用振盪7.3728M x16
取樣放慢也一樣。


發表於: 2006/5/4 17:52
頂部


Re: dsPIC30F2010內部data EEPROM如何讀取及寫入
#10
新會員
新會員


我正在研究中,請版主也給我一份吧!
edison@realscene.com.tw

發表於: 2005/8/19 10:26
頂部



(1) 2 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------