關(guān)于我們
18925580829
13926563901
發(fā)布時(shí)間:2018-04-02 瀏覽量:
/* 添加包含芯片的頭文件 */
#include
/*******************************************************************************
**函數(shù)名稱:void LED3_Init()
**功能描述:LED3->功能引腳初始化
**入口參數(shù):無(wú)
**輸出:無(wú)
*******************************************************************************/
void LED3_Init()
{
PC_DDR_bit.DDR6 = 1; //設(shè)置端口PC->6的輸入輸出方向寄存器為輸出方向
PC_CR1_bit.C16 = 1; //PC->6為推挽輸出
PC_CR2_bit.C26 = 1; //PC->6是輸出速度最快為10MHz
}
/*******************************************************************************
**函數(shù)名稱:void TIM2_Init()
**功能描述:定時(shí)器2參數(shù)初始化
**入口參數(shù):無(wú)
**輸出:無(wú)
*******************************************************************************/
void TIM2_Init()
{
TIM2_PSCR = 0x00; //定時(shí)器2預(yù)分頻數(shù)為 1 分頻,即定時(shí)器時(shí)鐘 = 系統(tǒng)時(shí)鐘 = 16MHz
TIM2_ARRH = 0x3E; //設(shè)置1毫秒時(shí)間自動(dòng)重載 16000 = 0x3e80
TIM2_ARRL = 0x80; //
TIM2_CNTRH = 0x00; //清除計(jì)數(shù)寄存器
TIM2_CNTRL = 0x00; //
TIM2_SR1 = 0x00; //清除所有的中斷標(biāo)志
}
/*******************************************************************************
**函數(shù)名稱:void TIM2_DelayMs(unsigned int ms)
**功能描述:定時(shí)器2參進(jìn)行精確延時(shí),最小為1毫秒,最大65535
**入口參數(shù):unsigned int ms 1=< ms <= 65535
**輸出:無(wú)
*******************************************************************************/
void TIM2_DelayMs(unsigned int ms)
{
TIM2_CR1 = 0x81; //啟動(dòng)定時(shí)器2開(kāi)始計(jì)數(shù)
while(ms--)
{
while( !(TIM2_SR1 & 0x01)); //等待計(jì)數(shù)是否達(dá)到1毫秒
TIM2_SR1 &= ~(0x01); //計(jì)數(shù)完成1毫秒,清除相應(yīng)的標(biāo)志
}
TIM2_CR1 = 0x00; //延時(shí)全部結(jié)束,關(guān)閉定時(shí)器2
}
/* 主函數(shù) */
int main(void)
{
CLK_CKDIVR = 0x00; //CPUDIV = 1 HSIDIV = 1 內(nèi)部時(shí)鐘 = 16Mhz
LED3_Init(); //調(diào)用LED3初始化函數(shù)
TIM2_Init(); //調(diào)用定時(shí)器2初始化函數(shù)
while(1)
{
PC_ODR ^= 0x40; //異或取反PC->6 ,使LED3進(jìn)行周期性亮滅亮滅操作
TIM2_DelayMs(1000); //調(diào)用定時(shí)器2進(jìn)行精確延時(shí)1000毫秒
}
}
來(lái)源于:m.wastewaterengineeringjobs.com