STM8S-定时器及其中断.pptxVIP

  • 68
  • 0
  • 约2.77千字
  • 约 23页
  • 2021-02-03 发布于四川
  • 举报
STM8S Technical Training 2南华机电STM8S 定时器及其中断Allen Tan 2012.11.07定时器概述STM8S系列提供了三种类型的定时器:(1)16位高级控制定时器:TIM1(2)16位通用定时器:TIM2、TIM3、TIM5(3)8位基本定时器:TIM4STM8S103xx定时器资源:(1)TIM1 — 16位高级控制定时器 (2)TIM2 — 16位通用定时器 (3)TIM4 — 8位基本定时器8位自动装载计数器,可调整预分频器为1~128之间任意2次幂数值。时钟源:主时钟-FMASTER (注:时钟源并非CPU时钟,数据手册有误) 中断源:1个溢出/更新。 8位基本定时器TIM4----框图8位基本定时器TIM4----主要功能8位基本定时器TIM4----时钟选择8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器8位基本定时器TIM4----寄存器应用实例:实现GPS_W LED 1S闪烁一次 System LED 2S闪烁一次 闪烁持续时间均为500ms使用到的资源:1)CLK(时钟):HSI2)GPIO(通用输入输出口):PA1/PA33)TIM4(8位基本定时器):定时器溢出中断1)CLK简介:STM8单片机的时钟源非常丰富,芯片内部既有16MHZ的高速RC振荡器,也有128KHZ的低速RC振荡器,外部还可以接一个高速的晶体振荡器。在系统运行过程中,可以根据需要,自由地切换。单片机复位后,首先采用的是内部的高速RC振荡器,且分频系数为8,因此CPU的上电运行的时钟频率为2MHZ。HSI时钟初始化(复位后的默认时钟):void CLK_HSI_Init(void){ CLK_ECKR = 0X00;//Disable extern HSE CLK_ICKR = 0X01;//enable HSI CLK_SWR = 0XE1;//chose HSI 16MHZ CLK_CKDIVR = 0X18; //Fmaster=16MHZ/8 Fcpu= Fmaster=2MHZ }2)GPIO简介:通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。GPIO 寄存器 :I/O的配置和使用 控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄存器的相应位进行编程来配置。 GPIO(通用输入输出口):PA1/PA3初始化为推挽输出低电平void GPIO_Init(void){/*PA1:System*/BitSet(PA_DDR,1); //PA1 Output.BitSet(PA_CR1,1); //PushPull.BitClr(PA_CR2,1); //Output speed up to 2MHz.BitClr (PA_ODR,1); //PA1 Output 0. /*PA3:GPS_WORK*/BitSet(PA_DDR,1); //PA1 Output.BitSet(PA_CR1,1); //PushPull.BitClr(PA_CR2,1); //Output speed up to 2MHz.BitClr (PA_ODR,1); //PA1 Output 0. }3)TIM4:10MS产生一次溢出中断void Tim4_Init(void){ TIM4_IER = 0x00;//禁止中断 TIM4_PSCR =0x07;//计数器时钟=主时钟/ ?27=2Mhz/128 (计数器周期64us) TIM4_CNTR =0; //设定计数器的初值 TIM4_ARR =156;//设定重装载时的寄存器值(10ms/64us=156.25) TIM4_EGR = 0x01;//计数器重新初始化并产生寄存器更新 TIM4_CR1 = 0x01; //允许计数器工作 TIM4_SR = 0xFE;//清除更新标志 TIM4_IER = 0x01; ;//允许更新中断} _asm(rim);??????????????? // 允许CPU全局中断TIM4:中断服务程序中断服务程序的框架或写法:stm8_interrupt_vector.c@far @interrupt void TIM4_UPD_OVF_IRQHandler (void){ timer0_count++;//10ms一次 timer

文档评论(0)

1亿VIP精品文档

相关文档