msp430程序IAR中怎么计算延时的
#include #define uint unsigned int delay(uint); void main() {WDTCTL = 0x5A80; uint ch[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uint i,j; P2DIR = 0xff; P2OUT = 0xff; //低电平点亮 while(1) { for(i=0;i<8;i++) { P2OUT = ch[i]; delay(50000); } for(j=6;j>0;j--) { P2OUT = ch[j]; delay(50000); } } } void delay(uint z) { uint a; for(a=0;a<z;a++); } 1.这是较为简单的流水灯程序,没有使用定时器,只是简单的延时; 若要精确延时,需要设置定时器A或B. 2.也可以通过移位操作来实现流水灯,移位操作放入中断内最好
用ccs5.1写msp430单片机程序时,运行后,点击单步调试,然后单步...
这段程序本身没问题,可能出现问题的地方说一下,你参考:1,F2013和F2132的外围端口一样不一样,这个我找了资料,没搜到EZ430F2013和EZ430F2132的资料,相信你自己应该有。
MSP430F2013和MSP4302132这两款芯片的资料我到是看到了,封装都不一样,不知道你那两种外围端口一样不一样,需要你确定一下。
2,这段程序是对应的芯片是MSP430F21系列的。
EZ系列的我不知道是不是有区别,你应该清楚。
2,弱弱的问你一句,你的串口调试软件是按照十六进制发送的嘛,如果不是,那么请调节成16进制发送(串口调试助手上面发送选项有个地方是“按照16进制发送”这个选中)。
发送的数据是0x01之类的数据,就是说你要确定串口调试助手发送的数据必须是16进制发送出去的。
3,请你确认你的硬件上的晶振是不是1MHz,如果不是(可能性很大,一般学习板上的晶振都不是1MHz),那么波特率就出错,按照你的晶振大小,重新就算UCA0BR0 和UCA0BR1的值。
4,确认串口有没有问题:串口的2和3短接,自发自收,看是否正常,如果能接收和发送一样的数据,则说明串口没有问题,否则就是串口的问题。
5,如果串口没问题,在P3.1和P3.2端口看看是否有波形数据。
如果有数据你在在程序上找问题。
转载请注明出处51数据库 » msp430软件延时
龍族至尊