GPF芯片的单片机编程开发技巧案例详细说明

工作了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钟,影响效率。计数值可以自我估计一下,不需要太准,这样的程序在延时不需要太精准的可以实现和定时器差不多一样的功能。

面向机柜I/O接口用的8016系列矩形连接器
谈谈国外的工程师们怎样工作的?
发光二极管使用注意事项,application note of LED
电网行业解决方案
物联网和大健康产业给农业带来的新方向是什么
GPF芯片的单片机编程开发技巧案例详细说明
冷焊机分几种
如何使用RISC-V创建自定义处理器
首款搭载Android Go的三星设备上架印度 售价600元
SEMI就华为禁令发声:请求将禁令宽限120天
北京 6月16日-17日《产品EMC正向设计与检视》公开课火热报名中!
澳大利亚联邦银行Smarts Assets用区块链建立农业设备资产管理共享平台
Fuzzing101实践之GIMP
WiFi6的介绍和5G网络的对比
如何正确选择漆包线点焊机
SDS2000XHD系列示波器的数学运算
如果苹果公司真的要造车,麦格纳应该制造它
拿起Oculus Touch,一起进入NVIDIA的VR世界
马恒达为电动汽车提供关键部件的一站式解决方案
Melexis推出面向消费类应用的紧凑型低压3D磁力计