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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4385|回復: 8
收起左側

小白在單片機中斷程序中關于if使用的問題

[復制鏈接]
ID:774612 發表于 2020-6-14 11:55 | 顯示全部樓層 |閱讀模式
整個程序是對外部脈沖進行一個計數
圖1是一開始寫的代碼,是可以直接運行,對外部脈沖的計數也是正常的,由于所測信號是非周期信號,為了減小誤差我決定測3次取均值,就寫了圖2的代碼,可以編譯通過,但仿真的時候計數就明顯不正常了。還望個位大佬能幫助小白,怎么改才行。

圖2

圖2

圖1

圖1
回復

使用道具 舉報

ID:773058 發表于 2020-6-14 16:20 | 顯示全部樓層
建議你去找本書看看,可能是此處的量增多,在其它地方也應該跟著進行變動
回復

使用道具 舉報

ID:491577 發表于 2020-6-14 18:32 | 顯示全部樓層
正常情況下if()語句的判斷要使用>或<,不要用==,用==有風險,比如if(time==60),如果有高等級中斷的話有可能錯過,改成if(time>=60)比較好。
回復

使用道具 舉報

ID:123289 發表于 2020-6-16 16:20 | 顯示全部樓層
思路正確。
注意一下:每次的起點、終點如何界定。
回復

使用道具 舉報

ID:548551 發表于 2020-6-16 22:31 | 顯示全部樓層
這三個if可以同時運行, 也可以說只運行第一個.為什么這楊說呢?你這個time++,適用于下面三個,也就是說等于60 ,120,180的時候就會清零對吧. 但是.重點來了.這個time+到60之后就被你清零了,也就是說后面的120 ,180.永遠到不了.明白了不? 所以這個time永遠在60的時候就沒有了,就從新開始計數了.我不知道你這個計時3s 6s 9s是怎么樣才算是計滿了.所以不知道你的思路. 只能說幫你解決你這個計數的問題

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:636538 發表于 2020-6-17 09:53 | 顯示全部樓層
66行下count沒有清零,當你在開始下一個的時候總是在累加,導致運行過程中count,而且需要添加一個time=0;這相當與三個周期結束下一個三次采樣,time從0開始計數,cout也從零計數,認為樓上說的不對,沒有見過你把time到結束清零
回復

使用道具 舉報

ID:781819 發表于 2020-6-17 11:17 | 顯示全部樓層
C語言書上有講解用法和舉例
回復

使用道具 舉報

ID:282850 發表于 2020-6-17 14:30 | 顯示全部樓層
hhh402 發表于 2020-6-14 18:32
正常情況下if()語句的判斷要使用>或=60)比較好。

同感,有些人不注重這些細節,bug在哪里自己找不出來。
回復

使用道具 舉報

ID:782419 發表于 2020-6-17 21:04 | 顯示全部樓層
如果三個相等的判斷的話,可以用switch……case……,或者if……else if……else,試下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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