ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:1.80MB ,
资源ID:7147664      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7147664.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(软件(架构).doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

软件(架构).doc

1、二、PITE3960软件(架构)综述 为实现多任务,系统使用了消息驱动方式,采用不可剥夺多任务机制(任务不能强行中止)。 主函数流程: 图2-1 主函数流程(含消息循环) 消息队列优先级: 本架构任务切换是通过消息队列来实现的(如图2-3),保证了先触发先响应。系统将会维护多个消息队列,所有产生的消息都会被插入相应队列中。系统会依据队列优先级在队列中取出每一条消息,根据不同消息队列,而产生不同的消息,并将该消息发送给当前任务的消息处理函数。 队列优先级如下: 图2-2 消息队列优先级 系统中使用的消息队列: Queue g_sutIntQueue;

2、 中断消息队列(主要用于中断的切换) Queue g_sutSysQueue; 系统消息队列(主要用于各任务的切换) Queue g_sutRecv0Queue; UART0接收数据队列 Queue g_sutTran0Queue; UART0发送数据队列 Queue g_sutRecv1Queue; UART1接收数据队列 Queue g_sutRecordQueue;

3、 放电电池记录指针索引数据队列 系统任务变量: unsigned char g_ucplay_back; 数据回放标志 0x0f:yes 0x00: no 任务的基本架构: 任务由消息处理分支构成,根据分支语句执行不同的操作。 每个任务都有自己的消息处理分支,任务的消息处理函数执行完成后,才能返回主流程,响应其它消息,所以对于耗时较多的任务应尽量精简,或拆分成多个任务。同时这种运行机制存在较大的局限性,目前适用于较小的应用平台。较大的应用中消息检查机制应做相应修改,避免消息检测循环消耗太多的时间和资源。 任务中必须要包含的是PITE_Def

4、TaskProc()函数,用于响应输入操作。其余消息视具体任务添加。 图2-3 任务消息循环及系统消息结构 任务的消息结构: message :是从当前消息队列中获得的消息值,消息值如图4所示。 para、para1 、para1 :是本消息附带的参数。 系统中的消息: 图2-4系统中的消息 系统软件模块组织结构: 图2-5 软件模块框图 系统中定义的任务: PITE_RET MenuMain(PPITE_MESSAGE Msg); 主菜单 PITE_RET MenuService(PPITE_MESSAGE Msg);

5、 系统管理菜单 PITE_RET MenuDataMenage(PPITE_MESSAGE Msg); 数据管理菜单 PITE_RET MenuSysSet(PITE_MESSAGE *Msg); 系统设置菜单 PITE_RET MenuRevise(PITE_MESSAGE *Msg); 计量校正菜单 PITE_RET MenuRadioSetup(PITE_MESSAGE *Msg); 放电参数设置菜单 PITE_RET TaskCalibrationZero(PITE_ME

6、SSAGE *Msg) 零点校正 PITE_RET TaskCalibrationCoef(PITE_MESSAGE *Msg) 增益校正 PITE_RET TaskCalibrationSensor(PITE_MESSAGE *Msg); 传感器选择 PITE_RET TaskCaliLoadFactoryPara(PITE_MESSAGE *Msg); 载入缺省值(厂值) PITE_RET TaskCaliSetFactoryPara(PITE_MESSAGE *Msg); 设置缺省值(厂值) PITE_RET TaskCaliS

7、etDefault(PITE_MESSAGE *Msg); 设置缺省值 PITE_RET TaskCalibrationLogin(PITE_MESSAGE *Msg); 触摸屏校准 PITE_RET TaskCaliSetupRadioBoxId(PITE_MESSAGE *Msg); 分机盒设置ID编号 PITE_RET TaskCaliSetupRadioBoxCoef(PITE_MESSAGE *Msg); 分机盒校正 PITE_RET TaskDateSet(PITE_MESSAGE *Msg); 设置日期时间 P

8、ITE_RET TaskVersionShow(PITE_MESSAGE *Msg); 软件版本声明 PITE_RET TaskBackLight(PITE_MESSAGE *Msg); 设置背光 PITE_RET TaskUpdateFont(PITE_MESSAGE *Msg); 字库更新 PITE_RET TaskGetPassword(PITE_MESSAGE *Msg); 设置密码任务 PITE_RET TaskFileList(PITE_MESSAGE *Msg); 数据

9、管理任务 PITE_RET TaskFlashFrame(PITE_MESSAGE *Msg); 数据清除任务 PITE_RET TaskDisplayScreen(PITE_MESSAGE *Msg); 屏幕数据回放任务 PITE_RET TaskGeneralTest(PITE_MESSAGE *Msg); 综合测试任务 PITE_RET TaskVoltagePrecise(PITE_MESSAGE *Msg) 稳压测试任务 PITE_RET TaskCurrentPrecise(PITE_MESSAGE

10、Msg) 稳流测试任务 PITE_RET TaskRipple(PITE_MESSAGE *Msg) 纹波测试任务 PITE_RET TaskBatteryDischarge(PITE_MESSAGE *Msg) 电池放电任务 扫描触摸屏: 由定时器T0产生一个定时器消息(INT_TIMER),用于扫描触摸屏。如有有效触摸屏按下将直接执行区域响应函数,具体说明见附录2、触摸屏坐标说明。 默认消息处理函数: 图2-6 默认消息处理 默认的消息处理函数将负责处理那些任务中不处理消息。 PITE_RET

11、PITE_DefTaskProc(PITE_MESSAGE *Msg) 默认处理函数,包含时钟扫描、 按键处理和串口数据收发 void RtcShow (void); 默认RTC处理 void Scom485QueueDataCheck(void); 485通信串口接收中断处理 void RadioQueueDataCheck (void); 无线通信串口接收中断处理 void BatteryDischargeSendData2PC (void); 串口发送

12、数据处理 void FAT_FileMsg(void); FAT消息处理 void USB_Msg (void); USB消息处理 综上所述,本系统是一个伪多任务操作系统,编程者了解后可以自定义消息和任务流程,实现特定的功能,但要注意该架构的使用中,消息处理函数一定要清晰。 关于任务的添加见附录5、任务添加说明。 六、附录 1、系统资源分配说明 图6-1 片上FLASH空间分配 图6-2 片上RAM空间分配 图6-3 片外RAM空间分配

13、 图6-4片外FLASH空间分配 图6-5片外EEPROM空间分配 LPC2214内部共有256K FLASHROM和16K RAM,外部扩展512KRAM、16M FLASHROM和256KEEPROM。 程序空间的分配如图6-1所示,前面8K(0—8192)存储的是用于更新主程序(8192之后248K程序存储空间)的代码,8K之后的248K程序存储空间存储的是应用程序代码。 数据空间的分配如图6-2、图6-3、图6-4、图6-5所示。片上16K RAM主要用于堆栈空间。片外512KRAM用于存储系统变量,数据队列,各种测量数据。片外256K的EEPROMRO

14、M用于存储LCD对比度、管理员标志、触摸屏坐标基准值、BMP数字名、计量校正参数、电流传感器参数、监测设置参数和FDT首地址。 2、触摸屏坐标说明 (1)、坐标的获取 由于LCD屏大小为320×240像素,故ADS7846采用12位A/D转换,可精确到X或Y方向上的1/4096。触摸屏中每一点经过ADS7846的转换后都会获得一组(X和Y)A/D值(触摸屏坐标),该值经过坐标变换后可转变为LCD屏坐标,转换过程如下: ①:计算A/D值在触摸屏坐标中的偏移值OFFSET; ②:乘上LCD坐标系相对于触摸屏坐标系的转换比率系数K; 公式如下: 式中:A/D:实际采样A/D值;

15、LCD_MAX:LCD屏坐标最大值(对于X轴为319,对于Y轴为239); LCD_MIN:LCD屏坐标最小值(对于X轴为0,对于Y轴为0); TOUCH_MAX:触摸屏坐标(A/D值)最大值; TOUCH_MIN:触摸屏坐标(A/D值)最小值; X轴坐标变换程序代码为: TOUCH32 AD2X(TOUCH32 adx) { TOUCH32 r; r = adx - g_sScreenMinMax[COORD_X].Min; r *= TOUCH_XSIZE - 1; return (r / (g_sScreenMinMax[COORD_X].Max - g_sScree

16、nMinMax[COORD_X].Min));} (2)、坐标的响应 图6-6 触摸屏坐标 参考上图,屏幕中有一区域AREA,(X1,Y1)是其左上角坐标,(X2,Y2)是右下角坐标。在点击屏幕时,触点只要在(X1,Y1)和(X2,Y2)矩形区域内均认为是触摸该区域有效,就可进行进一步的操作。程序中屏幕中每个显示有效的区域点都按照结构AREA的大小连续存储在屏幕区域(坐标)列表g_stScrList中,当有有效的坐标产生时,通过调用FindScrList()函数来判断该坐标是否在g_stScrList存储的有效区

17、域内,再做具体操作。 3、文件管理部分说明 文件管理采用简单FAT文件系统。 文件系统由以下3部分组成: 1:文件分配表区(FAT); 2:文件目录表区(FDT); 3:数据区。 (1):文件分配表存放Flash存储器上所有区块的占用与空闲情况以及每个文件的存储连接结构。本Flash文件系统中使用15位FAT,最大可管理2的15次方(32768)个存储单元。 (2) 文件目录表紧跟在FAT表之后,存放F1ash文件系统中每一个文件的名字、长度、属性、生成的时间,大小以及该文件的存储链在文件分配表中的入口。 (3)数据区域用于存放数据。本Flash文件系统中,数据块分配的单位是

18、512字节。 注意: 单次写入数据最大为256KB。 图6-7 Flash文件系统 5、任务添加说明 图6-8 任务的基本结构 1、任务结构 从主程序消息循环及消息切换中可知,本系统中包含消息队列,一个任务基本的框架包含有分支语句判断消息类型,并调用相应消息处理函数,不同的消息由任务的不同部分进行处理。 ① 处理新建任务消息处理函数(例如VoltagePreciseInitiate ()); ② 按键消息处理函数; ③ DSP中断消息处理函数(例如VoltagePreciseDspIntResponse ()); ④ RTC中断消息处理函数(例如Volt

19、agePreciseRtcResponse ()); ⑤ 默认消息处理函数 (例如PITE_DefTaskProc ()); 当然可根据实际需要增加或减少,例如PITE_RET TaskDisplayScreen(PITE_MESSAGE *Msg)中就没有按键消息处理函数。需要注意的是按键消息处理函数,仅在menu.c中有保留(MenuResponse ()),其余的在本架构中被触摸屏区域处理函数替换。 任务对外只提供一个接口函数。 2、任务添加 ⑴、在Msg.c中定义任务的显示菜单(如果需要显示为菜单)。 参考菜单结构的命名(例如l_sutMenuSysMain和l_apucM

20、enuMain) ⑵、在具体任务C文件中定义任务的接口函数。 例如 PITE_RET TaskVoltagePrecise(PITE_MESSAGE *Msg) { …………….. } ⑶、在具体任务H文件中声明任务的接口函数。 例如PITE_RET TaskVoltagePrecise(PITE_MESSAGE *Msg); ⑷、在需要切换任务的地方调用函数PITE_StartNewTask()来切换任务。 例如 PITE_StartNewTask(TaskVoltagePrecise); 6、ADS编译设置说明 在分散加载

21、文件mem_c.scf中需设置加载域和运行域地址为 0x0002000,如果不是使用USB更新而是使用ISP更新,则需设置为0x0000000。 在拷贝的工程目录中找到*.mcp工程文件并打开,之后先在ADS工程生成目标选择 DebugInChipFlash,接着点击工程设置图表按钮参考下文进行工程的地址设置、输出文件设置、编译选项等设置,之后再点击同步修改日期图表按钮检查文件更新情况(是否需要编译),检查工程中每个文件的修改日期,若发现有更新,则在Touch栏标记,最后点击编译连接图表按钮完成编译连接。 ADS编译环境编译器设置中, Target Settings设置

22、Linker下拉列表中选择ARM Linker,Post-Linker下拉列表中选择ARM FromELF。 图 6-9 ADS编译环境编译器设置中,ARM Linker 设置Output选项卡中Linktype单选框选择Scatterd,Scatter编辑框中输入mem_c.scf文件所在目录。 图6-10 ADS编译环境编译器设置中,ARM Linker 设置Option选项卡中Image entry point 参数需设置为 0x0002000 图6-11 DS编译环境编译器设置中,ARM fromELF 设置,Output fo

23、rmatz下拉列表中选择Intel 32 bit Hex,Output file name 中设置输出文件名为3980B.HEX(内容自定,最好与应用程序相关) 图6-12 7、汉字显示说明 1、汉字取摸 以汉字中为例,使用 宋体12,字体对应的点阵为:宽x高=16x16。生成字模时,横向取模,对点阵中有笔画的取1,无笔画(背景)的取0,每行可生成2个字节数据,16x16点阵可生成32字节数据。 图6-13 中字点阵图 图6-14 中字数字化 图6-15中字字模 2、汉字显示 在GB23

24、12-80标准中每个汉字(图形符号)采用双字节表示,第一个字节的范围从1-87(区码),0xA1-0xF7(机内码),共87种,第二个字节的范围从1-94(位码),0xA1-0xFE(机内码),共94种,利用这两个字节共可定义出87*94=8178种汉字,实际共用6763个汉字。 if 0xA1 <= 高字节 <= 0xF7: 则是 GB2312 字符 在GBK编码(不是国家标准,而只是规范)兼容GB2312字符集及其编码,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。第一字节的值在 0x81~0xFE 之间,第二字节的值在 0x40~0xFE,除去0x7F一线。 if 0x81 <= 高字节 <= 0xFE and (0x40 <= 低字节 <= 0x7E or 0x7E <= 低字节 <= 0xFE):则是 GBK字符。 在Windows95/98/NT/2000 (简体中)中使用的都是GBK字符集。 字符显示是按从左到右,从上到下一点一点的在显示缓冲区显示,主要代码说明如下: 字符显示流程如下图所示:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服