痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 2768|回復: 1

經驗分享:18B20 讀取異常

[複製鏈接]
發表於 2012-3-24 21:31:03 | 顯示全部樓層 |閱讀模式
近日做的 LCM240128 時鐘溫度計經常出現 溫度顯示為零或是亂跳的現象,後來想了一想會不會是 "中断太頻繁了",於是把中断的時間提高10倍,問題居然解決了!!
void Timer0_isr(void) interrupt 1
{
// static unsigned char countdis;
static unsigned int TMnum,TPnum,TSnum;//
static unsigned char count;// int
TH0=(65536-20000)/256;                  //重新赋值 2ms
TL0=(65536-20000)%256;      //

count++;
if(count>25)        //大致300ms READ Ds1302
   {
    count=0;
    ReadTimeFlag=1; //读标志位置1
        mv_count++;// 計數器作為換字的速度

65536-2000 改成 65536-20000
count>250 改成 25
發表於 2012-3-24 22:11:52 | 顯示全部樓層
一般溫度的變化不會很快,如果顯示部份擷取資料太快,就會把內在的變化過程"全都露"了...看光光,然後就看起來亂亂的.

一般溫度是大約0.3S(300mS)就差不多了,跟你現在的好像一樣.

你有興趣的話,可以玩玩轉速計 ... 你猜猜看顯示資料多久變換一次 ?
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-5-5 02:19 AM , Processed in 0.052154 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.