历史上的今天

今天是:2024年11月19日(星期二)

2018年11月19日 | 单片机编程开发技巧经验分享

发布者:chwwdch 来源: 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心得分享

推荐阅读

戴森携开眼视频深度记录4300分钟多视角现场,呈现戴森无绳吸尘器为保持中国家庭洁净环境带来的革新 中国成都-- 全球科技品牌戴森于成都开展分享会,共同探讨现代家庭包括养宠物、有孩子的家庭等面临的灰尘问题,并提供有效解决方案。 戴森Cyclone V10Total Clean无绳吸尘器提供有效清洁方式 戴森是灰尘方面的专家,已经进行了 20 年的家庭微尘研究...
光谱分析仪是在光纤通信产品中常用的测试仪器,本文以AQ6370光谱分析仪为例结合平时的测试工作,介绍了使用光谱分析仪进行一些常规参数的测量方法。一、概述光谱分析仪是在平时的光通信波分复用产品中较常使用到的仪表,当WDM系统刚出现时,多用它测试信号波长和光信噪比。其主要特点是动态范围大,一般可达70dB;灵敏度好,可达-90dBm;分辨率带宽小,一...
半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM) 与能源管理和工业自动化数字化转型的市场领导者施耐德电气 (Schneider Electric)联合推出一款物联网传感器原型。通过监测建筑物的居住率和使用率,该解决方案可以实现新型物业管理服务,提高楼宇的能源管理效率。 两家公司合作,在高性能人数统计传感器内集成人工智能(AI...
11月18日,“芯火”平台IC设计项目集中签约仪式举行,4个项目落户无锡高新区。无锡高新区在线消息显示,本次集中签约落户项目均为集成电路设计企业,研发产品涵盖了5G和Wi-Fi双标基带芯片、生物医疗高端MCU芯片、超低功耗AIOT Soc芯片和先进工艺硬核IP等方向。以下是签约项目:芯带科技(无锡)有限公司芯带科技(无锡)有限公司于2021年9月成立,已研发...

史海拾趣

问答坊 | AI 解惑

IM3、IIP3、OIP3等的计算

Pin:Input powerPout:Output powerIM3:3rd order intermodulation productIIP3:Input 3rd order intercept pointOIP3:Output 3rd order intercept pointG:GainP1dB:1dB&n ...…

查看全部问答∨

AT89c2051 中文资料

AT89c2051 中文资料…

查看全部问答∨

高频PCB学习资料

高频PCB学习资料…

查看全部问答∨

想找本已s3c44b0为例子的书入门,请推荐。

弄了块三星原厂的s3c44b0开发板,想找本书看下入门。…

查看全部问答∨

编译器的工作问题

问个基本问题:以S3C44B0X为例,在ADS编译环境下,编译器编译程序后自动将程序的代码和数据分开。代码和数据都放在FLASH里,。在启动程序44BINIT.S里,将数据段从FLASH拷贝SDRAM里,代码仍然留在FLASH里。 请问是这样的不? …

查看全部问答∨

触摸屏技术

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 “伸出手臂,触摸世界”。即使是对工程师来讲,如此简单的模拟通话也因此马上变得去繁变简。但是,有时电话交流还是不够,在这种情况下,一图胜千言,所以有了界面友好的触摸屏。   想象一 ...…

查看全部问答∨

试用报告4-关于人脸检测的具体操作步骤

前些帖子介绍了人脸检测的一些相关的资料,下面这个帖子就具体步骤进行介绍: 要实现人脸检测必须从硬件和软件入手: 硬件方面: 1、在开始菜单中启动xilinx platform studio 11.1(因为本实验板附带的edk就是11版本的,大家可以到xilinx官网中 ...…

查看全部问答∨

我的定时器启动后先进一次中断

大家好 我用的stm32单片机,我已经做了其他可能的排除,最好确定 定时器使能后先进入一次中断。 我感觉应该是有些标志位没有清除,希望各位大侠帮我看看。 void TIM_Configuration(void) { TIM_TimeBaseInitTypeDef  TIM_TimeB ...…

查看全部问答∨

为什么要删我的帖子的!!!!!!!!

                                 我看见网上有公司能破解STM8了,我也正在用STM8,所以想在这问一下,今天发现帖子被删除了…

查看全部问答∨

matlab与ModelSim联合仿真

这篇文章自己感觉对仿真很有用,再次感谢原作者的分享!   1. Matlab产生数据用作Modelsim仿真     在FPGA进行算法验证的时候,经常需要输入仿真数据,这些数据可以用FPGA产生,但是如果数据产生过程很复杂的 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved