日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]STM8的TIM1是16位高級控制定時器,作為新手不要急著玩高級功能,先從簡單的定時溢出中斷開始。那么這個簡單的目標就定為LED1亮500ms,滅500ms,循環(huán)往復,如此而已。#i nclude #define LED1_FLASH PD_ODR_ODR3

STM8的TIM1是16位高級控制定時器,作為新手不要急著玩高級功能,先從簡單的定時溢出中斷開始。那么這個簡單的目標就定為LED1亮500ms,滅500ms,循環(huán)往復,如此而已。

#i nclude

#define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // 開發(fā)板上的LED1接在PD3上

void CLK_init(void)
{
CLK_CKDIVR = 0x08; // 16M內部RC經2分頻后系統(tǒng)時鐘為8M
}

void GPIO_init(void)
{
PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3輸出
PD_CR1 = 0x08; // 設置PD3為推挽輸出
}

void TIM1_init(void)
{
TIM1_PSCRH = 0x1F; // 8M系統(tǒng)時鐘經預分頻f=fck/(PSCR+1)
TIM1_PSCRL = 0x3F; // PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每個計數(shù)周期1ms
TIM1_ARRH = 0x01; // 自動重載寄存器ARR=0x01F4=500
TIM1_ARRL = 0xF4; // 每記數(shù)500次產生一次中斷,即500ms
TIM1_IER = 0x01; // 允許更新中斷
TIM1_CR1 = 0x01; // 計數(shù)器使能,開始計數(shù)
}

#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void)
{
LED1_FLASH;
TIM1_SR1 = 0; // 清除更新中斷標記,這步不能漏掉,否則會連續(xù)進入中斷程序
}

void init_devices(void)
{
asm("sim"); // 關全局中斷
CLK_init();
GPIO_init();
TIM1_init();
asm("rim"); // 開全局中斷
}

void main( void )
{
init_devices();

// 主循環(huán)里沒有程序需要執(zhí)行
while(1);
}

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉