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

QQ登錄

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

搜索
查看: 2226|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)延時(shí)程序 我咋看不出怎么自適應(yīng)時(shí)鐘呢?用22M和11M明顯不同嘛

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1006638 發(fā)表于 2023-2-24 15:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/*---------------------------------------------------------------------*/
/* --- STC MCU International Limited ----------------------------------*/
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
/* 如果要在程序中使用此代碼,請(qǐng)?jiān)诔绦蛑凶⒚魇褂昧撕昃Э萍嫉馁Y料及程序   */
/*---------------------------------------------------------------------*/


/*************        功能說(shuō)明        **************

本文件為STC15xxx系列的延時(shí)程序,用戶幾乎可以不修改這個(gè)程序.

******************************************/

#include        "delay.h"



//========================================================================
// 函數(shù): void  delay_ms(unsigned char ms)
// 描述: 延時(shí)函數(shù)。
// 參數(shù): ms,要延時(shí)的ms數(shù), 這里只支持1~255ms. 自動(dòng)適應(yīng)主時(shí)鐘.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 備注:
//========================================================================
void  delay_ms(unsigned char ms)
{
     unsigned int i;
         do{
              i = MAIN_Fosc / 13000;
                  while(--i)        ;   //14T per loop
     }while(--ms);
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:86926 發(fā)表于 2023-2-24 17:46 | 只看該作者
自適應(yīng)時(shí)鐘就是不同的MAIN_Fosc定義的頻率不同,然后通過(guò)/13000計(jì)算得到不同的延時(shí)值
回復(fù)

使用道具 舉報(bào)

板凳
ID:1034262 發(fā)表于 2023-2-24 18:46 | 只看該作者
MAIN_Fosc定義成22M或11M,會(huì)有2倍的差別的。
回復(fù)

使用道具 舉報(bào)

地板
ID:94031 發(fā)表于 2023-2-24 19:44 | 只看該作者
i = MAIN_Fosc / 13000;時(shí)鐘高,i就大,循環(huán)次數(shù)多;反之,時(shí)鐘低,i就小,循環(huán)次數(shù)少;
回復(fù)

使用道具 舉報(bào)

5#
ID:579397 發(fā)表于 2023-2-24 20:52 | 只看該作者
MAIN_Fosc會(huì)變化的,需要你去設(shè)置
回復(fù)

使用道具 舉報(bào)

6#
ID:1061331 發(fā)表于 2023-2-24 22:17 | 只看該作者
MAIN_Fosc是一直都改變的,你可以自己去具體定義一下
回復(fù)

使用道具 舉報(bào)

7#
ID:230500 發(fā)表于 2023-2-25 00:06 | 只看該作者
這個(gè)MAIN_Fosc   在程序前面肯定有宏定義
舉例比如:
//5us 延時(shí)函數(shù),自動(dòng)適應(yīng)主時(shí)鐘
#define MAIN_Fosc        11059200UL    //定義主時(shí)鐘HZ


void delay5us()
{
    #if MAIN_Fosc == 11059200
        _nop_();
    #elif MAIN_Fosc == 12000000
        _nop_();
    #elif MAIN_Fosc == 22118400
        _nop_(); _nop_(); _nop_();
    #elif
}
回復(fù)

使用道具 舉報(bào)

8#
ID:748788 發(fā)表于 2023-2-25 21:43 | 只看該作者
需要在下載時(shí)設(shè)置與MAIN_Fosc對(duì)應(yīng)的mcu頻率
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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