这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » TIME,A1 如何使用TIME_A1的连续增计数模式进行定时?

共2条 1/1 1 跳转至

TIME,A1 如何使用TIME_A1的连续增计数模式进行定时?

院士
2006-09-17 18:14:16     打赏
TIME,A1 如何使用TIME_A1的连续增计数模式进行定时?



关键词: 如何     使用     连续     计数     模式     进行     定时    

院士
2006-12-22 22:43:00     打赏
2楼
问 使用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也可以。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]