找回密碼
 立即註冊
查看: 3713|回復: 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, 2025-6-9 05:20 PM , Processed in 0.025085 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.