找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3882|回復(fù): 8
收起左側(cè)

小白在單片機(jī)中斷程序中關(guān)于if使用的問題

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

圖2

圖2

圖1

圖1
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

同感,有些人不注重這些細(xì)節(jié),bug在哪里自己找不出來(lái)。
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表