msp430简单串口程序求解答~!!

msp430简单串口程序求解答~!!,第1张

IE2|=UCA0RXIE//开接收使能

这行 *** 作没变吗?可能性有几个,第一是你看寄存器值的时间不对,要在这条指令做完,也就是游标已经移到下一条指令时,才能看到IE2的变化;第二是,|= *** 作是只改变UCA0RXIE对应位的,只有相关的位改变,而如果原来就已经是这个值,它就不会发生改变。

/* 在P1.4上可用示波器看到三角波. */

#include <msp430x42x0.h>

void main(void)

{

unsigned char i,j

WDTCTL = WDTPW + WDTHOLD// Stop watchdog timer

SD16CTL = SD16REFON // 1.2V ref

DAC12_0CTL = DAC12OPS + DAC12SREF_2 + DAC12IR + DAC12AMP_5 + DAC12ENC

// DAC o/p external, Ref Voltage = internal (SD16),

// O/p Voltage range = 1x ref, Enable conversion

while(1){

for(i=0i<100i++)

{

DAC12_0DAT = 20*i // 步进输出三角上升阶梯

for(j=0j<10j++) // 软延时

}

for(i=100i>0i--)

{

DAC12_0DAT = 20*i // 步进输出三角下降阶梯

for(j=0j<10j++) // 软延时

}}

} // main

可以设置这两个脚为中断脚,在P1.1中段函数中电量LED,在P1.2中断函数中熄灭它,用示波器量一下波形就可以测出时间了。

如果用程序来实现的话,你可以将这两个脚都设置成PWM捕获功能,捕获模式设置成下降沿触发。如果捕获到有标志位会置位,你可以据此判断该引脚已捕获到下降沿,然后将一计数器的计数值清零,若另一个引脚也捕获到下降沿,你可以此时读取该计数器的计数值,这样就可以根据你计数器的分频系数和主频计算出时间了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11202248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存