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

標(biāo)題: 如何以公式的形式給單片機(jī)定時(shí)器賦初值 [打印本頁]

作者: tmxk0574    時(shí)間: 2019-2-18 19:46
標(biāo)題: 如何以公式的形式給單片機(jī)定時(shí)器賦初值
如:定時(shí)0.02秒,用公式的形式給定時(shí)器TH0、TL0賦值?這個(gè)C語言的語句怎么寫?(注意,是以公式的形式,不是TH0=0xB8、TL0=0x00這種寫法),謝謝!
作者: Y_G_G    時(shí)間: 2019-2-18 21:15
TH0=0xB8、TL0=0x00這種寫法必須存在!!你想改變定時(shí)器的溢出時(shí)間,只能由這兩個(gè)地址來決定,不管你是想用什么公式,這代碼是一定要有的,除非是別人已經(jīng)寫好了函數(shù),但這會(huì)讓原本不是很復(fù)雜的定時(shí)器設(shè)定變得很復(fù)雜
你多用幾次就可以了
如果是一定要用公式的話,就用延時(shí)函數(shù)吧
作者: wulin    時(shí)間: 2019-2-18 21:21
在實(shí)際應(yīng)用中用公式不如用工具。
作者: static    時(shí)間: 2019-2-19 00:10
給你一個(gè)
void Music_Play(uint8 *MusicTab)
{
        uint8 *pMusic;
        uint8 temp,i;

        pMusic=MusicTab;  //將歌曲首地址給指針變量
        while(*pMusic!=0)
        {
                if((*pMusic&0xf0)==0x00)
                        Fre=65536-1000000/FreTab_Low[*pMusic&0x0f];
                else if((*pMusic&0xf0)==0x10)
                        Fre=65536-1000000/FreTab_Mid[*pMusic&0x0f];
                else if((*pMusic&0xf0)==0x20)
                        Fre=65536-1000000/FreTab_Hight[*pMusic&0x0f];
                       
                TH0=Fre/256;                //計(jì)算頻率初值,賦高八位
                TL0=Fre%256;                //計(jì)算頻率初值,賦低八位
                TH1=0x3c;                    //定時(shí)器1賦初值,定時(shí)50ms
                TL1=0xb0;
               
                pMusic++;                    //獲得節(jié)拍值
                temp=*pMusic;
                TR0=1;                        //開啟定時(shí)器T0
                TR1=1;                        //開啟定時(shí)器T1
                for(i=0;i<temp;i++)
                {
                        while(TF1==0);        //判斷定時(shí)器1是否溢出
                        TH1=0x3c;
                        TL1=0xb0;
                        TF1=0;       
                }
                pMusic++;
        }
}
作者: 笨笨兔    時(shí)間: 2019-2-19 08:17
這個(gè)想法不錯(cuò),只是實(shí)際運(yùn)用中需要你考慮的問題太多,程序復(fù)雜。這也許是它的不足。
作者: tmxk0574    時(shí)間: 2019-2-19 11:30
謝謝上面各位朋友的賜教!
我曾看到過;
TH0=(65536-Y)/256
TL0=(65536-Y)%256
其中Y=65536-S*12/11059200
式中 S是定時(shí)值,單位:秒
不過,我看不明白
作者: tmxk0574    時(shí)間: 2019-2-19 20:32
Y_G_G 發(fā)表于 2019-2-18 21:15
TH0=0xB8、TL0=0x00這種寫法必須存在!!你想改變定時(shí)器的溢出時(shí)間,只能由這兩個(gè)地址來決定,不管你是想用 ...

謝謝賜教,
我曾看到過;
TH0=(65536-Y)/256
TL0=(65536-Y)%256
其中Y=65536-S*12/11059200
式中 S是定時(shí)值,單位:秒
不過,我看不明白
作者: tmxk0574    時(shí)間: 2019-2-19 20:33
wulin 發(fā)表于 2019-2-18 21:21
在實(shí)際應(yīng)用中用公式不如用工具。

謝謝賜教,
我曾看到過;
TH0=(65536-Y)/256
TL0=(65536-Y)%256
其中Y=65536-S*12/11059200
式中 S是定時(shí)值,單位:秒
不過,我看不明白
作者: tmxk0574    時(shí)間: 2019-2-19 20:36
static 發(fā)表于 2019-2-19 00:10
給你一個(gè)
void Music_Play(uint8 *MusicTab)
{

這里P0和P1為什么有兩種賦值形式
作者: tmxk0574    時(shí)間: 2019-2-19 20:38
static 發(fā)表于 2019-2-19 00:10
給你一個(gè)
void Music_Play(uint8 *MusicTab)
{

謝謝提供資料1
這里,P0和P1為什么用兩種賦值方式?
作者: tmxk0574    時(shí)間: 2019-2-19 20:40
wulin 發(fā)表于 2019-2-18 21:21
在實(shí)際應(yīng)用中用公式不如用工具。

謝謝賜教,
我曾看到過;
TH0=(65536-Y)/256
TL0=(65536-Y)%256
其中Y=65536-S*12/11059200
式中 S是定時(shí)值,單位:秒
我覺得用公式來改變初值比較方便
作者: struct00    時(shí)間: 2019-2-20 18:04
tmxk0574 發(fā)表于 2019-2-19 20:40
謝謝賜教,
我曾看到過;
TH0=(65536-Y)/256

那里面就是公式啊!看個(gè)人的悟性了!
作者: 刀刀見紅    時(shí)間: 2019-3-10 03:34
你可以用N多種公式來做,最終將結(jié)賦值給定時(shí)器




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1