8063|11

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

同时使用定时器A和B [复制链接]

我的设计中需要采用两个定时器
其中定时器A 定时间隔为10ms 定时器A的中断服务程序实现AD转换,使AD转换的采样频率达到100HZ。

定时器B定时间隔为10ms 在 定时器B的中断服务程序中切换一个状态标志位 此标志位将用于AD转换程序中,

实际中 这样可行么? 希望高人能给解答

最新回复

引用: 最主要的是你自己把整个结构定义好 没有冲突就可以了 我曾经试过147的 定时器全部用完 而且还的分时分任务处理 呵呵 定时器全部用上是很容易的事情.  详情 回复 发表于 2005-7-21 18:29
 
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
同时开启两个定时器可行,
不过,我觉得在TA中断服务中执行AD转换,不是很好。如果AD转换的参考电源一直开着,则功耗比较大,如果每次转换之后关闭AD的参考电源,则在每次转换的时候要重新建立参考电压,需要时间比较多,10ms内完成不了一次转换。
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
恩 我也意识到这个问题了
不过我曾经试图通过设置AD的寄存器,选择合适的时钟源和分频系数,来达到所需要的采样频率。但实际结果却不能实现要求的采样频率。 所以我才使用定时器来做的

我想问一下 ,设置AD的寄存器可以实现100HZ的采样频率么?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
应该不行  128HZ 倒是可以  100HZ达不到的  要用定时器了  不过用一个定时器A足够了  有三个通道  TACCR0 CCIFG单独用一个中断向量 TACCR1 CCIFG和TACCR2 CCIFG共用一个中断向量 TAIV的值来区分
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
那么采用定时器A的来实现的时候,这时的AD的相应的寄存器该怎么设置呢? 是不是这时候设置AD的采样有关的定时器就没用了  或者说无所谓了呢?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 

老兄 我也在弄这个 恼火!!!

我用的是模拟SPI发送AD配置字节接受16位数据
我想用定时A来实现定时采样
我用ACLK
可我怎么改变CCR0都改变不了采样时间了
帮我看看哈
void Send_Byte_spi(char ch)
{
char i,TempVar;
for(i = 0; i < 8; i ++)
{
P3DIR |= 0x0A; //SCK(p33),MOSI(p31):output
P5OUT&=~0X80;//cs
P3OUT |= 0x08; //SCK(p33)
P3OUT &= ~ 0x08; //SCK(p33):0
TempVar = ch;
TempVar &= 0x80;
if(!TempVar)
P3OUT &= ~ 0x02; //MOSI(p31):0
else
P3OUT |= 0x02; //MOSI(p31):1
P3OUT |= 0x08; //SCK(p33):1
ch = ch << 1;
}
P5OUT|=0X80;//cs
}
int Receieve_Byte(void)
{
int i;
P5OUT&=~0X80;//cs
P3DIR |= 0x08; //SCK(p33):output
P3DIR &= 0xFB; //MISO(p32):input
TempVar = 0;
for(i = 0; i < 16; i ++)
{
TempVar = TempVar << 1;
P3OUT &= ~ 0x08; //SCK(p33):0
P3OUT |= 0x08; //SCK(p33):1
if(P3IN & 0x04) //MISO(p32)
TempVar |= 0x01;
else
TempVar &= ~ 0x01;
P3OUT &= ~ 0x08; //SCK(p33):0
}
P5OUT|=0X80;//cs
return(TempVar);
}

TACTL=TASSEL1+TACLR;
CCTL0=CCIE;
CCR0=1;
TACTL|=MC0;
_EINT();
#pragma vector= TIMERA0_VECTOR
__interrupt void Timer_A(void)
{ i=adno;
adno++;
Send_Byte_spi(0xa0);
dataad[i]=Receieve_Byte();
}
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
TACTL=TASSEL0+TACLR;
贴错了哈
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

8
 
使用采样定时器进行定时采样,或采用循环采样不行吗?
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

9
 
楼主的方法是不是要靠率两个定时器同步呢?,同时打开两个定时气没问题,能不能完成你要求的工作是重点.msp430的ad速率最大是200k,100hz不是问题,关键看时钟怎么设置.不知道你的ad里面要改变标志.我的理解是,你要没转换一次ad就改变一次状态,既然频率一样为什么不在一个中断函数里完成呢?
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用:

楼主的方法是不是要靠率两个定时器同步呢?,同时打开两个定时气没问题,能不能完成你要求的工作是重点.msp430的ad速率最大是200k,100hz不是问题,关键看时钟怎么设置.不知道你的ad里面要改变标志.我的理解是,你要没转换一次ad就改变一次状态,既然频率一样为什么不在一个中断函数里完成呢?
现在是一样 但AD的采样率有可能要变 所以放在了两个 中断里面了
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
最主要的是你自己把整个结构定义好
没有冲突就可以了
我曾经试过147的
定时器全部用完
而且还的分时分任务处理
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用:

最主要的是你自己把整个结构定义好
没有冲突就可以了
我曾经试过147的
定时器全部用完
而且还的分时分任务处理
呵呵
定时器全部用上是很容易的事情.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表