共2条
1/1 1 跳转至页
TIME,A1 如何使用TIME_A1的连续增计数模式进行定时?
问
使用TIME_A1,即使用第2个或者第3个捕获/比较寄存器,来进行定时?需要产生中断。我看书怎么也看不明白,望刘工及各位高手给予帮助。
答 1:
我看了示例程序。但中断服务程序我看明白,为什么要5个reti返回中断呢,这样的话直接中断返回了那还如何执行TA_over后的内容呢?另外第一句的加法又是什么意思?
;----------------------------------------------
TAX_ISR; Common ISR for CCR1-4 and overflow
;----------------------------------------------
add.w &TAIV,PC ; Add Timer_A offset vector
reti ; CCR0 - no source
reti ; CCR1
reti ; CCR2
reti ; CCR3
reti ; CCR4
TA_over xor.b #001h,&P1OUT ; Toggle P1.0
reti ; Return from overflow ISR 答 2: 我用的是F1121,发现如果Time_A0使用了模拟串口功能。这样的话Time_A1就无法定时了,即无法产生Time_A1中断。而我去掉了模拟串口的功能。就可以产生中断了。
那该怎么办才能让两个功能都有,而且能很好的工作呢? 答 3: 顶一下。
有人知道吗?刘工在吗?我现在使用看门狗定时器暂时解决了,但并不是最终的方案。 答 4: 模拟串口用的是连续增计数模式,并不影响timera1的工作。不能进中断应该是您的程序在逻辑上还有问题,不是定时器本身的。
timera1的中断服务程序入口是多源的,timera1/timera2/溢出,都是这个入口,taiv标志是那个产生了中断标志。把pc加上taiv相当于跳转指令,不同的中断做不同的动作。相当于c语言中的switch。这是比较简单直观的,当然用cmp也可以。
;----------------------------------------------
TAX_ISR; Common ISR for CCR1-4 and overflow
;----------------------------------------------
add.w &TAIV,PC ; Add Timer_A offset vector
reti ; CCR0 - no source
reti ; CCR1
reti ; CCR2
reti ; CCR3
reti ; CCR4
TA_over xor.b #001h,&P1OUT ; Toggle P1.0
reti ; Return from overflow ISR 答 2: 我用的是F1121,发现如果Time_A0使用了模拟串口功能。这样的话Time_A1就无法定时了,即无法产生Time_A1中断。而我去掉了模拟串口的功能。就可以产生中断了。
那该怎么办才能让两个功能都有,而且能很好的工作呢? 答 3: 顶一下。
有人知道吗?刘工在吗?我现在使用看门狗定时器暂时解决了,但并不是最终的方案。 答 4: 模拟串口用的是连续增计数模式,并不影响timera1的工作。不能进中断应该是您的程序在逻辑上还有问题,不是定时器本身的。
timera1的中断服务程序入口是多源的,timera1/timera2/溢出,都是这个入口,taiv标志是那个产生了中断标志。把pc加上taiv相当于跳转指令,不同的中断做不同的动作。相当于c语言中的switch。这是比较简单直观的,当然用cmp也可以。
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
我要赚赏金
