欢迎来到天天文库
浏览记录
ID:43440513
大小:166.50 KB
页数:20页
时间:2019-10-08
《SONIX C语言编程教程2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何用C来完成SN8系列芯片的程序设计(二)2021/7/16ReviewSN8C程序结构RealTime的C程序使SN8C操作Bit游刃有余创建自己的静态库Debugger使用技巧2SN8C程序结构SA1SA3SA2共享资源1共享资源2共享资源3共享资源4资源共享3程序资源共享1.C3.C2.C.h.h.h.lib每一个程序文档都可以享有别的文档的资源,也可以提供自己的资源供别的程序共享!4程序模块外部可见部分外部不可见部分.H档.C档可以将每一个模块分成外部可见和不可见部分!5.H档的作用对内声明函数和定义常
2、量对外提供内部函数调用的方法和接口对不需要对外公开的代码和定义都可以放在.C中!6程序举例#include#include"MouseSensor.h"#include"public.h“externBITDEFINEstatusWord;#definesensor_readstatusWord.BIT3voidadns(void){……}unsignedintreadSensorID(void){……}voidreadXData(void){……}voidreadYData(void){
3、……}voiddelay(unsignedintTime){……}voidresetSensor(void){……}#ifndef_MOUSESENSOR_H_#define_MOUSESENSOR_H_voidadns(void);unsignedintreadSensorID(void);voidreadXData(void);voidreadYData(void);voiddelay(unsignedintTime);voidresetSensor(void);#endif7RealTime的C程序怎么实现
4、程序的实时性?每次都用中断吗?还是……8长时间的任务任务的分割与分时处理5432112345其实大多的任务都可以分割,然后分时进行处理。这样每一个任务都能得到及时的执行!9传统按键扫描与分时按键扫描的对比①②①②……12传统按键扫描分时按键扫描我们可以将一个任务分为60或70次来完成,实现了分时实现。而很多占用很长时间的任务也都可以这么做。10程序中进行的处理通过定义全局变量来记录任务执行的多少。通过定义标志位来检测任务执行的状态。保证每次循环任务都得到执行,都能正确得到任务状态。每一个任务都不能占用太多的系统时
5、间。通过标志位来判断一个任务是否需要马上执行。通过标志位来控制任务的执行。11使SN8C操作Bit游刃有余方便地定义位变量方便地操作位变量有很多种操作位的方法,那一种更好?12定义位变量的技巧typedefstructbitOp{unsignedbit0:1;unsignedbit1:1;unsignedbit2:1;unsignedbit3:1;unsignedbit4:1;unsignedbit5:1;unsignedbit6:1;unsignedbit7:1;}BIT;typedefunionbitDefi
6、ne{unsignedintByte;BITbit;}BITDEFINE;#defineBIT0bit.bit0#defineBIT1bit.bit1#defineBIT2bit.bit2#defineBIT3bit.bit3#defineBIT4bit.bit4#defineBIT5bit.bit5#defineBIT6bit.bit6#defineBIT7bit.bit7将它们定义在一个头文件中!13BITDEFINEkeyInData;#definekeyInBufkeyInData.Byte#define
7、key0keyInData.BIT0#definekey1keyInData.BIT1#definekey2keyInData.BIT2#definekey3keyInData.BIT3#definekey4keyInData.BIT4#definekey5keyInData.BIT5#definekey6keyInData.BIT6#definekey7keyInData.BIT7…程序中做这样的定义就可以通过keyInBuf和key0,key1……对word整体和每个位进行操作!这样比单独的定义位变量还方便!
8、14voidkeyIn(void){keyInBuf=0;key0=KP0;#ifdefKP1key1=KP1;#endif……}程序中既可对整个字进行操作,又轻松对位进行操作,并且有很高的编译效率哦!15创建自己的静态库为什么要创建静态库?如何创建静态库?16Debugger使用技巧生成文件介绍如何获得简洁的ASM档17一些应用说明关于通讯过程中的移位,与汇编的不同。1
此文档下载收益归作者所有