在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            K60 PIT定時(shí)器

            作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
            感覺(jué)K60PIT定時(shí)器就像是51,PIC中的timer(貌似K60有很多種定時(shí)器Systick、LPTMR、PDB)



            Systick是什么呢,它是Cortex內(nèi)核的定時(shí)器,也就是說(shuō)不管是M3M4,不管是ST的單片機(jī)還是飛思卡爾的單片機(jī),這個(gè)定時(shí)器的結(jié)構(gòu)和用法是一樣的,它也可以產(chǎn)生周期中斷,也可以作為精準(zhǔn)延時(shí)函數(shù)。但是他的真正用武之地值操作系統(tǒng)的嘀嗒時(shí)鐘,也就是為uC/OS等操作系統(tǒng)提供時(shí)鐘節(jié)拍。一來(lái)他是內(nèi)核級(jí)別的時(shí)鐘,中斷優(yōu)先級(jí)比其他外設(shè)模塊要高;二來(lái)他比較通用,可以不用改任何代碼就移植到其他單片機(jī)上。

            那么LPTMR、PDB呢?這兩個(gè)是飛思卡爾Kinetis特有的外設(shè)模塊,也可以用來(lái)做定時(shí)器,產(chǎn)生周期中斷,但是他們也是各自有各自特殊的用途的,LPTMR可以用來(lái)做脈沖累加器,用來(lái)測(cè)量脈沖波的頻率;PDB是可編程延時(shí)模塊,他的主打功能是產(chǎn)生DAC、ADC模塊的硬件觸發(fā)信號(hào),來(lái)使他們能夠自主的、不需要用戶(hù)軟件來(lái)進(jìn)行工作。

            總結(jié)上面說(shuō)的就是,Systick使用在操作系統(tǒng)里的(較高端的樣子),LPTMR用來(lái)計(jì)數(shù)脈沖,PDB用來(lái)觸發(fā)其他外圍設(shè)備。而PIT則是簡(jiǎn)簡(jiǎn)單單的周期定時(shí),利用拉普蘭德庫(kù)庫(kù)函數(shù),可以輕松掌握。

            先說(shuō)說(shuō)和之前單片機(jī)不同之處;PIT可以定時(shí)Us,Ms,S定時(shí)單位很多,因?yàn)榈讓訋?kù)函數(shù)已經(jīng)幫你寫(xiě)好了。所以要定時(shí)多長(zhǎng)一段時(shí)間,個(gè)人感覺(jué)比51和PIC都簡(jiǎn)單。貼上初始化

            voidpit_init(void)
            {
            //配置PIT0參數(shù)
            pit0_init_struct.PIT_Pitx=PIT0;
            pit0_init_struct.PIT_PeriodMs=100;//定時(shí)周期1秒
            pit0_init_struct.PIT_Isr=pit0_isr;//設(shè)置中斷函數(shù)
            //初始化PIT0
            LPLD_PIT_Init(pit0_init_struct);

            //配置PIT1參數(shù)
            pit1_init_struct.PIT_Pitx=PIT1;
            pit1_init_struct.PIT_PeriodMs=500;//定時(shí)周期1000毫秒
            pit1_init_struct.PIT_Isr=pit1_isr;//設(shè)置中斷函數(shù)
            //初始化PIT1
            LPLD_PIT_Init(pit1_init_struct);

            //使能PIT0和PIT1
            LPLD_PIT_EnableIrq(pit0_init_struct);
            LPLD_PIT_EnableIrq(pit1_init_struct);
            }

            然后就是中斷函數(shù)

            voidpit0_isr(void)
            {
            //LPLD_GPIO_Toggle_b(PTA,10);
            sec++;
            }

            voidpit1_isr(void)
            {
            //sec++;
            }

            我想達(dá)到的效果是有4個(gè)LED,第一個(gè)LED亮3下后第二個(gè)LED翻轉(zhuǎn),第二個(gè)LED亮3下后第三個(gè)LED翻轉(zhuǎn),以此類(lèi)推

            voidmain(void)
            {
            //初始化PIT
            pit_init();
            init_gpio();
            PTA10_O=1;
            PTA11_O=1;
            PTA28_O=1;
            PTA29_O=1;
            while(1)
            {
            if(sec==1)
            {
            LPLD_GPIO_Toggle_b(PTA,10);
            sec1++;
            sec=0;
            }
            if(sec1==6)
            {
            LPLD_GPIO_Toggle_b(PTA,11);
            sec1=0;
            sec2++;
            }
            if(sec2==6)
            {
            LPLD_GPIO_Toggle_b(PTA,28);
            sec2=0;
            sec3++;
            }
            if(sec3==6)
            {
            LPLD_GPIO_Toggle_b(PTA,29);
            sec3=0;
            }
            }
            }

            還是提醒一下,不要忘了初始化,聲明函數(shù)和結(jié)構(gòu)體變量

            還有有木有發(fā)現(xiàn)(學(xué)51的不用看),和PIC不同,它沒(méi)有涉及中斷標(biāo)志位,沒(méi)有軟件清零。因?yàn)閷?duì)應(yīng)寄存器PIT_CVALn(自減)減到0時(shí),另一個(gè)寄存器PIT_LDVALn會(huì)把我們之前存進(jìn)去的初始值重新賦給PIT_CVALn。中斷標(biāo)志位自動(dòng)清。注意它是減,不是加,所以一開(kāi)始不用去算該給多少初值,直接給我們想要定時(shí)的時(shí)間就可以了。


            關(guān)鍵詞: K60PIT定時(shí)

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉