资 源 简 介
/*---------------------STM8S105K4T6核心板的测试程序-------------------------*/
#include"iostm8s105k4.h"
void CLK_init(void)
{
CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M
}
void GPIO_init(void)
{
PE_DDR = (1<<5); // 配置PD端口的方向寄存器PD3输出
PE_CR1 = (1<<5); // 设置PD3为推挽输出
}
void TIM1_init(void)
{
TIM1_PSCRH = 0x1F; // 8M系统时钟经预分频f=fck/(PSCR+1)
TIM1_PSCRL = 0x3F; // PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每个计数周期1ms
TIM1_ARRH = 0x01; // 自动重载寄存器ARR=0x01F4=500
TIM1_ARRL = 0xF4; // 每记数500次产生一次中断,即500ms
TIM1_IER = 0x01; // 允许更新中断
TIM1_CR1 = 0x01; // 计数器使能,开始计数
}
#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void)
{
PE_ODR ^= (1<<5);//LED接在PD3上
TIM1_SR1= 0x00; // 清除更新中断标记,这步不能漏掉,否则会连续进入中断程序
}
int main(void)
{
CLK_init(