您现在的位置: 主页 > MCU > 单片机综合应用 > 单片机编程开发技巧经验分享
本文所属标签:
为本文创立个标签吧:

单片机编程开发技巧经验分享

来源:网络 网络用户发布,如有版权联系网管删除 2018-07-02 

吴鉴鹰单片机开发板地址


淘宝店铺:吴鉴鹰的小铺

地址:https://item.taobao.com/item.htm?_u=ukgdp5a7629&id=524088004171

工作了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%xn",0xE1);

count = 0 ;

};break ;

case 2:

if(count == 50)

{

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


喜欢本文的亲们欢迎点赞



技术源于积累,成功来自执着

单片机精讲吴鉴鹰



              查看评论 回复

游客   2018-07-12 09:56:53
毒鸡汤
1楼 回复本楼
游客   2018-07-12 09:55:29
成功来自执着
2楼 回复本楼


嵌入式交流网主页 > MCU > 单片机综合应用 > 单片机编程开发技巧经验分享
 单片机 程序 效率

"单片机编程开发技巧经验分享"的相关文章

网站地图

围观()