打印

转:430的一些经验

[复制链接]
1514|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
msp430ing|  楼主 | 2011-5-12 16:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
—————————————————————————————————
430不能像51一样,define 一位的名字,却可以define这一位的掩码,只需要需要记住是对那个port的
#define Ref (0×01) // P1.0 = Reference
#define Sensor (0×80) // P1.7 = Sensor
define之后就可以这样用
P1OUT &= ~(Ref + Sensor); // Ref set
P1DIR |= Ref + Sensor; // Ref output
—————————————————————————————————
delay的中断实现,低功耗
主函数中定义TA的计数,但不开中断:
TACTL = TASSEL_2 + MC_2 + TACLR; // 连续计数模式,SMCLK~1MHz, 也不一定要clear TAR
用到delay的地方设置delay间隔,比如用CCR1:
CCR1 = TAR + 5000; // CCR1 ~ TAR+5ms
使能CCR1的中断
CCTL1 = CCIE;
低功耗,等待delay时间到
LPM0; // Wait for CCR1 interrupt
下面是delay时间到了之后做的任务
中断函数里:结束低功耗功耗
—————————————————————————————————
用好ADC12
记住CTL0是内核控制,包括开AD内核,选参考电压,选MSC表示非单次模式的每次不需要重新触发,设定采样时间,及ENC和SC信号
CTL1是外围控制——时钟源、触发源SHI选择、SAMPCON来源的选择,起始存储器地址,采样模式:
所以总是先用CTL0再用CTL1,再用CTL0
频率问题:
!AD转换,一次采样转换的总时间是 重要的,这是由有用信号的频率决定的,想要的信号频谱越宽,越要增大ADC频率。
不能忽略的是,采样时间,要能保证电容充电稳定,(充电时间常数远远小于有用信号的周期时可以达到稳定的充电电压),而Tau是由内部电阻电容和信号源电阻共同决定的

相关帖子

沙发
3B1105| | 2011-5-13 12:51 | 只看该作者
很好的经验之谈啊!

使用特权

评论回复
板凳
加班加点| | 2011-5-13 13:12 | 只看该作者
受益匪浅啊!

使用特权

评论回复
地板
huzixian| | 2011-5-14 22:31 | 只看该作者
受教了

使用特权

评论回复
5
dfl448866| | 2011-5-15 20:09 | 只看该作者
谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

730

帖子

1

粉丝