×
嵌入式 > 技术百科 > 详情

STM8S208R8的第七个程序---定时中断

发布时间:2020-06-20 发布时间:
|
#include

#define LED PC_ODR_ODR1

void GPIO_INIT()//PC1推挽输出
{
  PC_DDR_DDR1=1;
  PC_CR1_C11=1;
  LED=1;//先熄灭LED
}
void TIM2_INIT()
{
  TIM2_PSCR_PSC=11;//计数器时钟F_CLK=F_CPU/2的PSC次方,此处是2的11次方
  TIM2_ARRH=0X03;//自动重装载高8位
  TIM2_ARRL=0XE8;//自动重装载低8位TIM2_ARR=0X03E8=1000,即计数1000次产生一次中断
  TIM2_IER_UIE=1;//允许中断更新
  TIM2_CR1_CEN=1;//使能计数器
}
#pragma vector=TIM2_OVR_UIF_vector//一旦定时器计数溢出即触发中断
__interrupt void TIM2_OVR_UIF()
{
  LED=~LED;//当中断触发时LED值取反
  TIM2_SR1_UIF=0;//更新中断标志
}
void main()
{
  asm("sim");//关全局中断
  GPIO_INIT();
  TIM2_INIT();
  asm("rim");//开全局中断
  while(1);


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
教你如何选一款内外兼备的吊顶LED灯