MSP430讨论区
返回
登录/注册
在TA定时器中刷新数码管问题
楼主
dengshanzhe 于 2014-03-28 21:40:44
在TA定时器中刷新数码管问题
[P][FACE=宋体][SIZE=12px]小弟初学430,求指教,在TA定时器中刷新数码管,俩个基本一样的程序,一个用不了[/FACE]
[SIZE=12px]MSP430单片机在定时器A中刷新四位数码管(显示A/D结果)如下是正常的:[/SIZE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] switch(i)[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] {[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] case 3 : {P4OUT=0X00;break;} //最高位[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] case 2 : {P4OUT=0X08;break;}[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] case 1 : {P4OUT=0X10;break;}[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] case 0 : {P4OUT=0X18;break;} //[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] }[/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][FACE=宋体][SIZE=12px] P5OUT=LedNumber[buff[i]]; //不加小数点,[/i][/FACE][/SIZE][i][FACE=宋体][SIZE=12px]buff在主循环中变化[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] i++;[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] if(i>3)i=0;[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px]
[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px]
[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px]但是我加了小数点后就刷新速度就慢上百倍:老半天数字才变化???真不知什么原因:[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] P5OUT=0;[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] switch(i)[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] {[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] case 3 : {P4OUT=0X00;break;} // 最高位添加小数点[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] case 2 : {P4OUT=0X08;break;}[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] case 1 : {P4OUT=0X10;break;}[/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] case 0 : {P4OUT=0X18;break;} // [/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] } [/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][FACE=宋体][SIZE=12px] if(i==3)P5OUT=(LedNumber[buff[i]]|BIT7);//在此处添加小数点[/i][/FACE][/SIZE][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][i][FACE=宋体][SIZE=12px] else P5OUT=LedNumber[buff[i]]; //buff在主循环中变化[/i][/FACE][/SIZE][/i][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][i][i][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/i][/i][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][i][i][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/i][/i][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][i][i][FACE=宋体][SIZE=12px] i++;[/FACE][/SIZE][/i][/i][/i][/FACE][/SIZE][/P][P][FACE=宋体][SIZE=9pt][i][i][i][FACE=宋体][SIZE=12px] if(i>3)i=0;[/FACE][/SIZE][/i][/i][/i][/FACE][/SIZE][/P]
回复
1楼
DC 于 2014-03-30 12:41:12
从你的程序上看不出来什么问题,只是做一个判断而已。[P]刷新速度变慢了,好似有东西在影响到你的定时频率,首先你确定一下加判断与不加前后的定时频率是否一样。可以通过示波器来查看。如果真的因为某些语句影响到,则要考虑的是你的定时频率是否过高(我觉得可能性不大)?如果改的前后频率一样,那么可能就不是这个原因了。只能提供这些意见给你...。[/P]
回复
1
电脑版
Page created in 0.1562 seconds width 3 queries.