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

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 3457|回復(fù): 11
收起左側(cè)

請(qǐng)問(wèn)這個(gè)C語(yǔ)言程序里為什么bb%38==0是1秒鐘?

[復(fù)制鏈接]
ID:864629 發(fā)表于 2021-4-15 19:39 | 顯示全部樓層 |閱讀模式
10黑幣
void  main(  void  )
{  
while(1)
        {
   bb++;
            if(ks==1)
                          {         
                               if(bb%38==0) //1秒鐘
                                    {
                                                  miao++;
                                                  if(miao>=60)
                                                  {
                                                            miao=0;
                                                          fen++;
                                                          if(fen>=100)fen=0;
                                                          if((fen==shijian)&&dang>=1)
                                                          {
                                                                          yuyin();
                                                                        for(i=0;i<5;i++)
                                                                        {
                                                                                led=0;
                                                                                delay_ms(50);
                                                                                led=1;
                                                                                delay_ms(50);
                                                                        }
                                                                        led=1;
                                                                        fen=0;
                                                                        miao=0;
                                                                        ks=0;
                                                          }
                                                  }        

                                         }

最佳答案

查看完整內(nèi)容

是不是這樣理解,單片機(jī)程序跑一圈所用的時(shí)間來(lái)定時(shí)的,這個(gè)時(shí)間雖然不太準(zhǔn),但是不占用定時(shí)器,在要求不高的地方實(shí)際上也不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:47541 發(fā)表于 2021-4-15 19:39 | 顯示全部樓層
是不是這樣理解,單片機(jī)程序跑一圈所用的時(shí)間來(lái)定時(shí)的,這個(gè)時(shí)間雖然不太準(zhǔn),但是不占用定時(shí)器,在要求不高的地方實(shí)際上也不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-4-16 07:29 | 顯示全部樓層
如果主循環(huán)周期=0.0263157894736842秒,if(bb%38==0)bb能整除38即1秒鐘。不過(guò)這段代碼不嚴(yán)謹(jǐn),明顯出于某習(xí)作。
回復(fù)

使用道具 舉報(bào)

ID:883031 發(fā)表于 2021-4-16 16:11 | 顯示全部樓層
和單片機(jī)的時(shí)鐘頻率以及運(yùn)算速度有關(guān)系。
回復(fù)

使用道具 舉報(bào)

ID:864629 發(fā)表于 2021-4-16 22:43 | 顯示全部樓層
wulin 發(fā)表于 2021-4-16 07:29
如果主循環(huán)周期=0.0263157894736842秒,if(bb%38==0)bb能整除38即1秒鐘。不過(guò)這段代碼不嚴(yán)謹(jǐn),明顯出于某習(xí) ...

請(qǐng)問(wèn)一下什么叫主循環(huán)周期?是說(shuō)0.0263157894736842秒晶振就震蕩一次,然后bb就+1嗎?
這個(gè)主循環(huán)周期是測(cè)試出來(lái)的嗎?
回復(fù)

使用道具 舉報(bào)

ID:864629 發(fā)表于 2021-4-16 22:44 | 顯示全部樓層
cn_zhx 發(fā)表于 2021-4-16 16:11
和單片機(jī)的時(shí)鐘頻率以及運(yùn)算速度有關(guān)系。

可以再說(shuō)詳細(xì)一點(diǎn)么,這個(gè)時(shí)鐘頻率是由外部晶振決定的嗎?謝謝
回復(fù)

使用道具 舉報(bào)

ID:864629 發(fā)表于 2021-4-17 11:43 | 顯示全部樓層
aygc 發(fā)表于 2021-4-17 10:57
是不是這樣理解,單片機(jī)程序跑一圈所用的時(shí)間來(lái)定時(shí)的,這個(gè)時(shí)間雖然不太準(zhǔn),但是不占用定時(shí)器,在要求不高 ...

應(yīng)該是,不過(guò)想再請(qǐng)問(wèn)一下這個(gè)單片機(jī)程序跑一圈的時(shí)間是固定的,還是自己設(shè)定的?是由外部晶振電路決定的么?是不是要通過(guò)測(cè)試測(cè)出單片機(jī)程序跑一圈的時(shí)間?是不是單片機(jī)程序跑一圈,bb就自加1?
回復(fù)

使用道具 舉報(bào)

ID:906759 發(fā)表于 2021-4-17 11:43 | 顯示全部樓層
跟你的指令周期和執(zhí)行的代碼量有關(guān)系,計(jì)時(shí)的話可以開(kāi)個(gè)定時(shí)器來(lái)實(shí)現(xiàn)
回復(fù)

使用道具 舉報(bào)

ID:151846 發(fā)表于 2021-4-17 11:44 | 顯示全部樓層
if(bb%38==0)意思就是bb=0或者38或者76或者……反正能被3整除的數(shù)這個(gè)如果就成立。
回復(fù)

使用道具 舉報(bào)

ID:47541 發(fā)表于 2021-4-19 11:42 | 顯示全部樓層
409406709 發(fā)表于 2021-4-17 11:43
應(yīng)該是,不過(guò)想再請(qǐng)問(wèn)一下這個(gè)單片機(jī)程序跑一圈的時(shí)間是固定的,還是自己設(shè)定的?是由外部晶振電路決定的 ...

我是這樣理解的,單片機(jī)程序要正常持續(xù)工作,肯定在循環(huán)執(zhí)行指令代碼,不會(huì)停下來(lái),他這個(gè)定時(shí)方式只能用在對(duì)時(shí)間要求不高的地方,比如指示燈閃頻等,如果單片機(jī)相應(yīng)外部中斷等預(yù)料外的操作,整個(gè)單片機(jī)跑一圈的時(shí)間肯定是有差異的。
回復(fù)

使用道具 舉報(bào)

ID:47541 發(fā)表于 2021-4-19 11:52 | 顯示全部樓層
a4732710 發(fā)表于 2021-4-17 11:44
if(bb%38==0)意思就是bb=0或者38或者76或者……反正能被3整除的數(shù)這個(gè)如果就成立。

請(qǐng)教一下他這個(gè)值為什么這樣確定的?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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