tag 标签: LPTIM1

相关博文
  • 热度 2
    2020-6-23 14:04
    3405 次阅读|
    0 个评论
    LPTIM操作模式: 1. 连续运行模式: 可以由软件或触发事件启动,一旦运行后则不会主动停止,必须由软件关闭,新的触发事件会被忽略 2. 一次触发模式: 定时器由触发事件启动,当计数值到达ARR值(自动重装载值)时停止,新的触发事件将重启定时器 (例外情况:CFGR:WAVE标志置位后,定时器只能被触发启动一次,后续的触发事件会被忽略) 定时器启动后,但计数值未达到ARR值时,此期间的触发事件会被忽略 LPTIM计数模式: CKSEL=0,COUNTMODE=0:内部时钟计数,每个内部时钟脉冲更新一次计数值 CKSEL=0,COUNTMODE=1:外部信号计数(内部时钟同步),每个内部时钟脉冲对外部信号进行采样并更新计数值,因此外部信号的频率应该低于内部时钟频率,同时内部时钟不应该被分频(即PRESC =000) CKSEL=1,COUNTMODE=X:外部时钟计数,此时定时器不需要内部时钟(也不需要毛刺过滤时) LPTIM编码器模式: LPTIM操作注意点: 1. SNGSTRT/CNTSTRT位必须在定时器使能时写入(即CR:ENABLE位为1时可以写入) 2. 连续运行模式和一次触发模式可以在运行过程中转换,如果当前模式为连续运行模式,置位SNGSTRT将切换至一次触发模式,计数值到达ARR值时,定时器自动停止;如果当前模式为单次触发模式,置位CNTSTRT将切换至连续运行模式,计数值到达ARR值时,定时器自动重启 3. TIMEOUT功能:第一个触发事件启动定时器,接下来的触发事件则复位计数值,重新开始计数 同单脉冲模式,只是最后的保持电平取决于输出极性配置(又WAVPOL位控制) 5. ARR寄存器的值必须大于CMP寄存器的值 6. PRELOAD位控制ARR和CMP寄存器的数据加载时刻,PRELOAD=0时,写操作会被立即执行;PRELOAD=1时,写操作的值在定时器超时时加载(如果定时器已经启动的话);ARROK和CMPOK状态位分别用于确认ARR和CMP寄存器写操作是否执行完成( 未做ARROK和CMPOK判定时的连续写入会导致不可预料的结果 ) 7. CR:ENABLE位置位后,定时器需要2个计数时钟才会被真正启动。CFGR(配置寄存器)和IER(中断使能寄存器)必须在该位为0时才能被修改