99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

關于PIC12F509的定時計數器的問題

PIC12F509中的TMR0程序計數器,用以下寫法(C語言)
...
OPTION=0xC3;/250*16=4MS/
...
IF (TMR0>250)
  COUNT++;
...
IF (COUNT>250)
  {SECOND++;
  COUNT=0;}
...

按照4MS*250=1S則程序實現的是1秒的計時.
但如果在下面程序的情況下:
...
OPTION=0xC3;/250*16=4MS/
...
VOID TM()
{IF (TMR0>250)
  COUNT++;
IF (COUNT>250)
  {SECOND++;
  COUNT=0;}}
...
VOID DELAY()
{UNSIGNED INT I;
I=255;
WHILE(I--);
}
...
VOID MAIN()
{WHILE(1);
{ DELAY();
TM();
DELAY();}}
會出現因為DELAY的時間長而忽略掉某個TMR0的溢出,從而使得SECOND的定時出現誤差,這種情況下應該如何處理?特別是當這個DELAY()必須的時候.
全部回復(2)
正序查看
倒序查看
whatcall
LV.5
2
2007-05-31 23:34
看你的用法可知PIC12F509沒有定時器的中斷功能.
既然Delay()會過長影響你的計數檢查,為何不把TM()放到DELAY()中,此時注意DELAY的延時增加(指令多了不少),如下:

VOID DELAY()
{UNSIGNED INT I;
I=255;
WHILE(I--)
  TM() ;
}

請查一下PIC12F509的Stack深度是否滿足函數的兩級調用.
0
回復
xyx911
LV.7
3
2007-06-01 09:06
@whatcall
看你的用法可知PIC12F509沒有定時器的中斷功能.既然Delay()會過長影響你的計數檢查,為何不把TM()放到DELAY()中,此時注意DELAY的延時增加(指令多了不少),如下:VOIDDELAY(){UNSIGNEDINTI;I=255;WHILE(I--)  TM();}請查一下PIC12F509的Stack深度是否滿足函數的兩級調用.
關鍵是PIC12F509最多支持兩層嵌套,所以不能把TMR0的計數子程序加入DELAY()中,如果直接寫進去呢,如:
DELAY()
{UNSIGNED INT I;
WHILE(I--)
{ IF (TMR0>250)
    COUNT++;
  IF (COUNT>250)/計數值到一秒跳出
    I=0;
}
}
這樣會不會影響DELAY()延時的精度?
如采用509的內部晶振方式,有一個OSCCAL參數值校正,每個芯片都要在燒錄前先讀取數值嗎?如不用的話如何校準TMR0的值?(官方的資料說509的內部晶振誤差在5%)
0
回復
主站蜘蛛池模板: 美国一级大黄一片免费中文 | 久久久二 | 国产乱AⅤ一区二区三区 | 久久亚洲伦理 | 国产成人精品午夜福利 | 免费黄在线观看 | 色情无码初拍人妻 | 一级做a爰片性色毛片99高清 | 好久不见在线观看免费高清 | 无人高清视频免费观看在线 | 欧美日韩国产人妻无码 | aⅴ免费一区二区三区 | 欧美肥老太交性506070 | 欧美成人一区二区三区片免费 | www国产成人 | 黄色录像久久 | 亚洲成av人不卡无码影片 | 精品人伦一区二区三区蜜桃视频 | 蜜桃麻豆WWW久久囤产精品 | 亚洲网一区二区三区 | 在线播放视频 | 玩弄JAPAN白嫩少妇HD小说 | 欧美日韩国产成人高清视 | 久久综合九色综合国产 | 欧产日产国产精品视频 | 毛片a片免费看 | 国产高清无码黄片亚洲大尺度视频 | 性刺激的大陆三级视频 | 91久久一区二区 | 色综合激情一区二区三区 | 91麻精品国产91久久久久 | 欧洲a视频 | 日本精品一二三 | 国产农村妇女一区二区三区 | 欧美久久国产精品 | 国产极品美女高潮抽搐免费网站 | 成人毛片无码一区二区 | 亚洲高清影视 | 成人无码午夜在线观看 | 国产无人区码一码二码三MBA | 狠狠操一区二区三区 |