|
之前用AD测量电压,试过使用分离的方式输出电压值到串口调试助手上以字符的形式显示,程序如下面的。
但是我现在尝试用外部中断测量12MHZ的晶振频率,用这个程序的话太麻烦了,itoa和sprintf函数用不了,
请问有什么好办法吧long型数据变成字符串送到电脑呢?忘高手老师指点一下,给个示范程序吧,最好有注释!
听说用结构体可以做到,但是我不会呀...
下面是我现在AD数据转字符串的函数,如果long型也这样搞的话好麻烦额。。。咋整?
uchar code Number[]={
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'.',
'V',
};
void Get_Voltage(uchar ch)
{ if(1 == Flag_CMD)
{
Get_ADC_Value(ch);
if (1 == Flag_ADC )
{
dVoltage = ADCValue;
dVoltage = (dVoltage / 256) * 5.05; //电压转换
Init_Array(Val);
if((dVoltage >= 1) && (dVoltage < 10)) //电压大于1V
{
iVoltage = dVoltage * 1000; //最大为
tmp = iVoltage / 1000;
Val[0] = Number[tmp];
Val[1] = Number[10];
tmp = iVoltage % 1000 / 100;
Val[2] = Number[tmp];
tmp = iVoltage % 100 / 10;
Val[3] = Number[tmp];
tmp = iVoltage % 10;
Val[4] = Number[tmp];
Val[5] = Number[11];
Send_Str(Val);
nop;
nop;
nop;
nop;
nop;
}
else if(dVoltage < 1) //电压小于1V,以0V输出
{
Val[0] = Number[0];
Val[1] = Number[11];
Send_Str(Val);
nop;
nop;
nop;
nop;
nop;
}
Flag_ADC = 0;
Flag_CMD = 0;
}
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|