马老师 看了您的测频率 侧频法 测量频率 有点疑问?
void display(void) // 8位LED数码管动态扫描函数{
PORTC = 0xff; //关所有的数码管
PORTA = led_7]; //posit0-8如果是9,怎么板呢 也许我是多疑了。
if (posit==5)
PORTA = PORTA | 0x80; //点亮小数点
PORTC = position; //开位控制
if (++posit >=8 ) posit = 0; //移动下一位要显示的位控制
}
void freq_to_disbuff(void) // 将频率值转化为BCD码并送入显示缓冲区
{
unsigned char i,j=7;
for (i=0;i<=4;i++)
{
dis_buff = freq % 10;
freq = freq / 10;
}
dis_buff = freq;// 这句话 是啥作用 freq 假定是多大数 如果很大呢?freq % 10;?
}//这里怎么看不懂呢?
{ // 累计T/C0的计数值 分2种情况没有想明白是啥意思
if (time0_new >= time0_old) //啥意思?
freq = freq + (time0_new - time0_old);//
else //time0_new < time0_old
freq = freq + (256 - time0_old + time0_new);//
(1)、 if (++posit >=8 ) posit = 0; //移动下一位要显示的位控制
通过上条语句,很明显,可以知道一共有7位。
(2)、for (i=0;i<=4;i++)
{
dis_buff = freq % 10;
freq = freq / 10;
}
很明显,通过上述语句,可以知道一共需要显示5位数据,
dis_buff = freq % 10;每次获取数值的尾数
freq = freq / 10; 每次获取数值的整数
例如:一个数为12345
i =0 时,12345% 10 =5
12345/ 10 =1234
i =1 时,1234% 10 =4
1234/ 10 =123
ba_wang_mao 发表于 2012-6-4 11:51 static/image/common/back.gif
(1)、 if (++posit >=8 ) posit = 0; //移动下一位要显示的位控制
通过上条语句,很明 ...
if (time0_new >= time0_old) //啥意思?
freq = freq + (time0_new - time0_old);//
这句说的是计数器没有溢出的情况,下面一种是计数器溢出了一次。所以要加一个溢出的计数256.
页:
[1]