欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3328|回復: 2
打印 上一主題 下一主題
收起左側

巧用單片機定時器中斷,求解delay函數中i和j的值

[復制鏈接]
跳轉到指定樓層
樓主
ID:351097 發表于 2019-8-5 11:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我們用單片機一般都會用到自定義的delay函數,很多時候我們都要去網上找別人現成寫好的delay函數,當然,還要晶振的頻率和別人的板子一樣才行。有時候我們也想自己寫一個準確的delay()函數,但是里面的i和j參數到底取什么值,這個自己慢慢調試挺費時間的,還要單片機支持仿真才行。我自己琢磨了一下,想到了利用單片機的定時器外設來確定i和j參數。我們知道單片機的定時器外設都比較精準。現在我們來用定時器中斷來自己寫一個1ms的delay函數。首先寫一個delay函數,參數為指針i和指針j。還有一個timer_init();//定時1ms初始化,使能中斷。void Delay_ms(int *i, int *j)//延時函數,但是i和j未知

{
   _nop_();
   _nop_();
do
{while(--*j)}while(--*i)}
timer_interrupt_service//1ms中斷入口函數
{
  printf(“a = %d\n”,*a);
  printf(“b = %d\n”,*b);
}
int main(void)
{
  int *a=500;
  int *b=300;
  timer_init();
while(1)
{
  Delay_ms(&a, &b);//死循環執行delay函數
}
}
這樣,1ms后,第一次進入定時器中斷函數后,會打印a和b的值,那么就可以確定delay函數中i和j的值了,從而可以實現自定義1ms的延時函數。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:66287 發表于 2019-8-14 10:06 | 只看該作者
很巧妙,贊一個!
回復

使用道具 舉報

板凳
ID:371895 發表于 2019-8-16 18:49 來自觸屏版 | 只看該作者
有一個輔助軟件可以直接得出的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表