历史上的今天
今天是:2024年11月19日(星期二)
2018年11月19日 | 单片机编程开发技巧经验分享
2018-11-19 来源:eefocus
工作了7个月之久,对单片机的编程也开始慢慢熟悉起来,以前总是知道单片机就是定时器,状态机,中断这些东西结合起来效率是相当高的,但是自从接手开发GPF这个芯片之后,我发现了另外一种单片机的开发技巧,高手请绕道。
我们都知道,在程序中,延时会影响单片机的实时性能,导致效率明显降低,但是在GPF这个芯片的开发中,系统延时和初始化被供应商做到了一块,所以调用程序,必须要做一定的loop才能使得程序能够正常的跑起来,其实我也不知道她们为什么要这么做。
在工作中,改一份源码不是随随便便就可以改的,当时做了这么一个程序,源码我就不公开了,写个案例解释:
void test()
{
int i = 0 ;
int tick ;
int BatteryStatus = 0;
int Voltage ;
int count = 0 ;
int Voltage_value ;
char ch ;
scanf("%d",&BatteryStatus);
while(1)
{
delay_20ms();
switch(BatteryStatus)
{
case
1:
if(count == 50)
{
printf("0x%x\n",0xE1);
count = 0 ;
};break ;
case 2:
if(count == 50)
{
printf("0x%x\n",0x90); //发通用'1'信号
count = 0 ;
};break ;
default:
break ;
}
count++ ;
#if 0
ch = getch(); //假设我在这设立一个按键
if(ch == 'q')
{
printf("%x",0x48);
break ;
}
#endif
}
}
在while循环中,首先进去是延时20个ms,然后count计数器加加,当加到50次也就是一秒钟了,然后清零。此时若按下按键,不会受到干扰,程序正常运行,效率依然很高。如果这时候delay_20ms改成delay_1000ms,程序扫描按键每次就要等待1s钟,影响效率。计数值可以自我估计一下,不需要太准,这样的程序在延时不需要太精准的可以实现和定时器差不多一样的功能。
上一篇:单片机PWM调制技术
下一篇:单片机连接蓝牙4.0心得分享
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 目前应用最多的是德州仪器公司的TMS320系列和摩托罗拉公司的DSP56000和DSP96000系列。TMS320F28系列芯片是TI最新推出的DSP芯片,特别适用于有大批量数据处理的测控场合,如数据采集,工业自动 ...… 查看全部问答> |
|
求救:tornado 2.2 powerpc c++驱动问题。 下面是编译信息: vxrm *.o *.rpo ctdt.c symTbl.c vxApp* *.out *.pl vxrm ..\\prjComps.h ..\\prjParams.h ..\\prjConfig.c ..\\linkSyms.c vxrm ..\\libs.nm ..\\libs.size F:\\tornado2.2\\host\\gnu\\3.3\\x86-win32\\bin\\ccppc -g -mcpu ...… 查看全部问答> |
|
小弟是新接触vxWorks系统的新手,请问有哪位哥哥姐姐有关于WDB的资料么?还有,请问谁有关于vxWorks启动时的资料啊,比如系统先加载什么,然后运行什么,这方面的资料,很急,先谢谢大家了!… 查看全部问答> |
|
昨天自己设计了一个IIR滤波器,写了个测试程序:滤波器是一个低通的滤波器,要求滤除20KHZ以上的频率段, 程序如下: #include \"filter.h\" #include \"iir.h\" #include \"math.h\" float xn[400],yn[400],zn[400],rn[400]; #pragma DATA_S ...… 查看全部问答> |
|
从简单的谈起吧。 1、程序先进行了HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5; 因为 //必须写入0xA5A5A5A5,之后才能够改写一些被MWRALLOW保护的寄存器 关于哪些寄存器被保护可以参考1.13.1 System Control, Conf ...… 查看全部问答> |
|
Hanker M4初识 5月10日上午接到顺风快递的电话,告知货已经到达楼下。甚是欣喜,飞奔至楼下,虽然意料之中,但依旧痛苦地掏了快递费后,终于看到了hanker M4开发板…… &n ...… 查看全部问答> |




