CN108170475A - 一种用于移动式航向基准设备的嵌入式软件开发方法 - Google Patents
一种用于移动式航向基准设备的嵌入式软件开发方法 Download PDFInfo
- Publication number
- CN108170475A CN108170475A CN201711397096.XA CN201711397096A CN108170475A CN 108170475 A CN108170475 A CN 108170475A CN 201711397096 A CN201711397096 A CN 201711397096A CN 108170475 A CN108170475 A CN 108170475A
- Authority
- CN
- China
- Prior art keywords
- task
- lcd
- cgui
- page
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明涉及一种用于移动式航向基准设备的嵌入式软件开发方法,其技术特点在于:包括以下步骤:步骤1、完成基于移动式航向基准设备人机交互单元处理器和显示屏的μC/OS‑II操作系统和μCGUI图形支持系统的移植;步骤2、基于μCGUI图形支持系统实现信息分类多页面显示及消息处理;步骤3、结合人机交互单元软件需求进行μC/OS‑II操作系统任务分解,实现按键处理任务、指示灯处理任务、数据解析任务和界面显示任务。本发明可以实时处理多任务,让多个任务同时运行,同时具有占用内存小,容易移植等优点。
Description
技术领域
本发明属于嵌入式软件开发技术领域,涉及移动式航向基准设备,尤其一种用于移动式航向基准设备的嵌入式软件开发方法。
背景技术
移动式航向基准设备用于舰/机惯导对准保障,以移动对准保障方式为舰载机惯导提供动态对准支持,提供的对准信息包括移动式航向、位置、速度、姿态和三维载体角速度等,可满足多类型直升机的动基座传递对准保障需求。移动式航向基准软件主要由系统解算和人机交互单元组成。系统解算单元完成外部参考信息和惯性元件信息的收集及解算,将解算后的信息发送给舰载机;人机交互单元完成对系统解算单元的控制及对解算信息的显示。
但现有的移动式航向基准设备在裸机开发过程中,由于主程序是循环执行的,中断任务优先级最高,而中断时机与中断相应时间都是不确定的,其它事件的处理实时性得不到保障。
而且,现有的移动式航向基准设备在进行界面设计时,由于不添加任何图形支持系统,所以需要自己编写函数完成点、线、图形等绘制,多个页面复杂操作时,还要处理按键事件,实现难度大,效果差。
发明内容
本发明的目的在于提供一种设计合理、方便实用的用于移动式航向基准设备的嵌入式软件开发方法。
本发明解决其现实问题是采取以下技术方案实现的:
一种用于移动式航向基准设备的嵌入式软件开发方法,包括以下步骤:
步骤1、完成基于移动式航向基准设备人机交互单元处理器和显示屏的μC/OS-II操作系统和μCGUI图形支持系统的移植;
步骤2、基于μCGUI图形支持系统实现信息分类多页面显示及消息处理,并选用隐藏/显示方式实现界面中多页面切换功能;并使用μCGUI提供的视窗管理器,通过其回调机制,实现了各窗口事件的处理,从而自主完成与其它任务的实时交互;
步骤3、结合人机交互单元软件需求进行μC/OS-II操作系统任务分解,实现按键处理任务、指示灯处理任务、数据解析任务和界面显示任务。
而且,所述步骤1的具体步骤包括:
(1)首先根据系统配置文件完成对μC/OS-II操作系统的裁剪;
(2)然后在剪裁后的μC/OS-II操作系统的工程中,移植μCGUI图形支持系统;
而且,所述步骤1第(2)步的具体步骤包括:
①调通LCD控制器硬件的底层驱动;
首先根据硬件管脚定义,修改BSP目录下LCD驱动文件lcd_driver.c,所选液晶屏为24位真色彩TFT屏,有24个输入输出管脚,分别对应R、G、B三种颜色,每个颜色由8个管脚控制;然后对比液晶屏驱动时序与LPC1788芯片LCD控制器时序,设置水平时序控制寄存器和垂直时序控制寄存器,根据系统时钟设置LCD时钟配置寄存器,最后设置LCD控制寄存器;
②对μCGUI进行高层配置;
首先将μCGUI代码添加进工程;并修改guiconf.h文件,将gui_os配置为1,使其支持多任务的操作系统;然后根据液晶屏硬件有关的各种属性修改LCDConf.h文件;
③对μCGUI进行底层接口配置;
μCGUI通过gui文件夹下的LCDDriver下的LCDEval.c对液晶屏驱动文件lcd_driver.c进行调用;通过液晶屏的画点函数和初始化函数建立联系;通过void LCD_L0_SetPixellndex(int x,int y,int Pixellndex)和unsigned int LCD_L0_GetPixellndex(int x,int y)函数操作显存;通过int LCD_L0_Init(void)函数添加lcd_driver.c中的LCD初始化函数Lcd_drive_Init();
④对时间函数进行修改;
修改μCGUI源码中的OS文件夹下GUI_X_UCOS.C文件,将该文件中OS_x_Delay()改为μC/OS-II中的函数OSTimeDly();
而且,所述步骤2的选用隐藏/显示方式实现界面中多页面切换功能的具体方法为:程序启动时创建所有的页面窗口,程序运行时隐藏当前无需显示的页面,同时显示当前需要显示的页面,利用WM_HideWindow()和WM_ShowWindow()实现界面切换程序。
而且,所述步骤2的各窗口事件的处理主要包括自定义按键的处理和页面数据定时刷新处理;其中,自定义按键处理方法为:通过中断获取按键键值后,在按键处理任务中调用GUI_SendKeyMsg()函数,把按键数据发送到输入焦点所在窗口进行处理;页面数据定时刷新处理方法为:采用自定义消息,在定时任务中通过调用WM_SendMessageNoPara()函数定时向当前活动窗口发送更新显示消息。
而且,所述步骤3的具体步骤包括:
(1)当串口接收到数据后产生中断,进入串口中断服务程序,在串口中断服务程序中获取正确的串口报文后,释放数据接收处理信号量,数据解析任务获取到数据接收处理信号量后,进行数据解析,解析出的全局数据供指示灯处理任务和界面显示任务使用;
(2)当按键按下后,产生GPIO中断,进入GPIO中断服务程序,在GPIO中断服务程序中获取键值后,释放按键处理信号量,按键处理任务获取按键处理信号量,发送键值给界面显示任务;
(3)界面显示任务处理按键事件;根据1000Hz系统节拍,创建10Hz软件定时器,在软件定时器中,以1Hz频率释放指示灯控制信号量,指示灯处理任务获取指示灯控制信号量后,根据从数据解析任务中获取的当前工作状态,控制指示灯亮灭;在软件定时器中,以1Hz频率发射更新显示消息,界面显示任务获取更新显示消息后,根据串口接收数值,更新页面显示。
本发明的优点和有益效果:
1、本发明为满足设备通信实时性及显示刷新实时性,在移动式航向基准设备的人机交互单元中移植了具有多任务、实时性特点的嵌入式操作系统μC/OS-II。该嵌入式操作系统μC/OS-II是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权,可以处理实时处理多任务,让多个任务同时运行,同时具有占用内存小,容易移植等优点。
2、本发明为方便界面设计,提升用户操作体验,添加了图形界面软件μCGUI,UCGUI是一种嵌入式应用中的图形支持系统。它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,它适用单任务或是多任务系统环境,并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。它的设计架构是模块化的,由不同的模块中的不同层组成,由一个LCD驱动层来包含所有对LCD的具体图形操作。UCGUI可以在任何的CPU上运行,因为它是100%的标准C代码编写的。UCGUI能够适应大多数的使用黑白或彩色LCD的应用,它还能够提供非常好的允许处理灰度的颜色管理。UCGUI还提供一个可扩展的2D图形库及占用极少RAM的窗口管理体系,非常符合嵌入式操作系统μC/OS-II的使用。
3、本发明为满足移动式航向基准设备体积小、重量轻和功耗低的手持性需求,对人机交互单元与系统解算单元进行了集成设计,以满足人机交互单元小型化的更高要求。根据移动式航向基准设备的尺寸及需求,本发明的人机交互单元选用了基于NXP 32-bitARM Cortex-M3LPC1788FBD208处理器的工业级单板机,显示屏选用了三菱AA050MG03型号5寸液晶屏,按键选用了8键矩阵键盘。该移动式航向基准设备具有串口通信、界面实时显示,自定义按键操作以及指示灯控制等功能。
4、本发明能够完成基于移动式航向基准设备人机交互单元LPC1788处理器的μC/OS-II操作系统和μCGUI图形支持系统的移植,基于μCGUI图形支持系统的多页面设计及消息处理,基于μC/OS-II操作系统的任务分解及交互,以及人机交互性能优化等内容,最终较好的实现设备功能需求。
5、本发明选用的硬件体积小、重量轻、功耗低,选用的μC/OS-II操作系统具有多任务、实时性强、易移植等特点,选用的图形界面软件μCGUI,方便界面设计,实现简单、可靠,用户操作体验好。
附图说明
图1是本发明的步骤3的处理流程图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
本发明提供一种基于嵌入式软件开发方法在移动式航向基准设备中的应用,涉及μC/OS-II操作系统及μCGUI图形支持系统的移植及其在移动式航向基准设备人机交互软件中的应用。
一种用于移动式航向基准设备的嵌入式软件开发方法,包括以下步骤:
步骤1、完成基于移动式航向基准设备人机交互单元LPC1788处理器和AA050MG03型号液晶屏的μC/OS-II操作系统和μCGUI图形支持系统的移植。
所述步骤1的具体步骤包括:
(1)首先根据系统配置文件完成对μC/OS-II操作系统的裁剪;
在本实施例中,因为只关注系统应用程序设计,即只需关心系统配置文件os_cfg.h,通过该文件对系统进行裁剪,具体配置见表1。其余均为系统默认设置。
表1系统配置
(2)然后在剪裁后的μC/OS-II操作系统的工程中,移植μCGUI图形支持系统(μCGUI函数库);
所述步骤1第(2)步的具体步骤包括:
①调通LCD控制器硬件的底层驱动;
首先根据硬件管脚定义,修改BSP目录下LCD驱动文件lcd_driver.c,所选液晶屏为24位真色彩TFT屏,有24个输入输出管脚,分别对应R、G、B三种颜色,每个颜色由8个管脚控制,如果设置不对会导致颜色失真。然后对比液晶屏驱动时序与LPC1788芯片LCD控制器时序,设置水平时序控制寄存器和垂直时序控制寄存器,根据系统时钟设置LCD时钟配置寄存器,最后设置LCD控制寄存器。
②对μCGUI进行高层配置;
首先将μCGUI代码添加进工程;并修改guiconf.h文件,将gui_os配置为1,使其支持多任务的操作系统;然后根据液晶屏硬件有关的各种属性修改LCDConf.h文件,具体如下:
#define LCD_XSIZE(800)/*分辨率800*600*/
#define LCD_YSIZE(480)/*分辨率800*600*/
#define LCD_BITSPERPIXEL(16)
#define LCD_SWAP_RB(1)/*表示gui的颜色和屏的颜色能对应而不需要交换红蓝分量*/
#define LCD_CONTROLLER-1/*定义为负数表示gui并没有提供,而需要用户自己来编写控制器驱动程序*/
③对μCGUI进行底层接口配置;
μCGUI通过gui文件夹下的LCDDriver下的LCDEval.c对液晶屏驱动文件lcd_driver.c进行调用;通过液晶屏的画点函数和初始化函数建立联系;通过void LCD_L0_SetPixellndex(int x,int y,int Pixellndex)和unsigned int LCD_L0_GetPixellndex(int x,int y)函数操作显存;通过int LCD_L0_Init(void)函数添加lcd_driver.c中的LCD初始化函数Lcd_drive_Init()。
④对时间函数进行修改;
修改μCGUI源码中的OS文件夹下GUI_X_UCOS.C文件,将该文件中OS_x_Delay()改为μC/OS-II中的函数OSTimeDly()。
步骤2、基于μCGUI图形支持系统实现信息分类多页面显示及消息处理,并选用隐藏/显示方式实现界面中多页面切换功能;并使用μCGUI提供的视窗管理器,通过其回调机制,实现了各窗口事件的处理,从而自主完成与其它任务的实时交互。
所述步骤2的选用隐藏/显示方式实现界面中多页面切换功能的具体方法为:程序启动时创建所有的页面窗口,程序运行时隐藏当前无需显示的页面,同时显示当前需要显示的页面,利用WM_HideWindow()和WM_ShowWindow()实现界面切换程序。
所述步骤2的各窗口事件的处理主要包括自定义按键的处理和页面数据定时刷新处理;其中,自定义按键处理过程为:通过中断获取按键键值后,在按键处理任务中调用GUI_SendKeyMsg()函数,把按键数据发送到输入焦点所在窗口进行处理;页面数据定时刷新处理过程为:采用自定义消息,在定时任务中通过调用WM_SendMessageNoPara()函数定时向当前活动窗口发送更新显示消息。
在本实施例中,μCGUI是Segger公司为Micrium公司定制的图形软件库,可用于任何使用图形显示进行操作的应用,与单任务和多任务环境、专用操作系统或具有任何商业RTOS兼容。
设备要求显控软件具有多种数据的显示及用户的控制,受屏幕尺寸限制,需采用信息分类多页面的显示模式,当界面有多个页面需要切换时,μCGUI有两种方式可以实现:(1)隐藏/显示方式:程序启动时创建所有的页面窗口,程序运行时隐藏当前无需显示的页面,同时显示当前需要显示的页面,利用WM_HideWindow()和WM_ShowWindow()实现界面切换程序。(2)删除/创建方式:程序启动时创建开机需要显示的页面窗口,程序运行时删除当前无需显示的页面,同时创建当前需要显示的页面。考虑到删除/创建方式涉及到动态内存的申请和释放,处理不当或程序不严谨容易出现内存错误造成死机现象,而且删除/创建方式由于切换页面时需要创建窗口,因此切换页面时速度比隐藏/显示方式更慢一些,因为选用使用隐藏/显示方式。为节省内存空间,界面尽量紧凑,减少页面数量。
为方便页面管理,使用了μCGUI提供的视窗管理器,通过其回调机制,实现了各窗口事件的处理,从而自主完成与其它任务的实时交互。页面的事件处理主要包括自定义按键的处理和页面数据定时刷新处理。自定义按键处理过程为通过中断获取按键键值后,在按键处理任务中调用GUI_SendKeyMsg()函数,把按键数据发送到输入焦点所在窗口进行处理。定时刷新处理采用了自定义消息,在定时任务中通过调用WM_SendMessageNoPara()函数定时向当前活动窗口发送更新显示消息。
步骤3、结合人机交互单元软件需求进行μC/OS-II操作系统任务分解,实现按键处理任务、指示灯处理任务、数据解析任务和界面显示任务;
如图1所示,所述步骤3的具体步骤包括:
(1)当串口接收到数据后产生中断,进入串口中断服务程序,在串口中断服务程序中获取正确的串口报文后,释放数据接收处理信号量,数据解析任务获取到数据接收处理信号量后,进行数据解析,解析出的全局数据供指示灯处理任务和界面显示任务使用;
(2)当按键按下后,产生GPIO中断,进入GPIO中断服务程序,在GPIO中断服务程序中获取键值后,释放按键处理信号量,按键处理任务获取按键处理信号量,发送键值给界面显示任务;
(3)界面显示任务处理按键事件;根据1000Hz系统节拍,创建10Hz软件定时器,在软件定时器中,以1Hz频率释放指示灯控制信号量,指示灯处理任务获取指示灯控制信号量后,根据从数据解析任务中获取的当前工作状态,控制指示灯亮灭;在软件定时器中,以1Hz频率发射更新显示消息,界面显示任务获取更新显示消息后,根据串口接收数值,更新页面显示。
在本实施例中,μC/OS-II是美国Micrium公司出品的嵌入式实时操作系统,能够对任务的运行进行管理和调度,以满足实时性需求。除空闲任务、统计任务两个系统任务,根据人机交互单元软件需求创建了按键处理任务、指示灯处理任务、数据解析任务和界面显示任务4个用户任务,开启了串口接收中断、GPIO按键获取中断服务,为实现中断服务程序与任务之间、各任务之间同步,创建了按键处理、指示灯定时处理、数据接收处理3个信号量。为了实现界面及指示灯定时刷新,创建了基于系统节拍的软件定时器,根据μC/OS-II系统默认配置,软件定时器周期为10Hz。其中,只有界面显示任务一个任务调用了μCGUI函数,此任务优先级最低,这样既有助于保持程序结构清晰,又保证了通信等任务的实时性。
本发明在移动式航向基准设备上测试时,经软硬件配合调试,完善其性能:
1、实现中文显示
μCGUI默认设置不支持中文显示,需要用户自己增加中文字库,添加步骤如下:
(1)利用中文字库生成工具UCGUIGenApp.exe生成选定字体及字号的.c字库文件,因为LPC1788存储空间较小,而包含全部汉字的字库文件较大,会造成程序无法下载的问题,因此在生成字库文件时,需选择指定范围的汉字生成字库文件,只添加界面显示所需的汉字即可。
(2)将生成的.c字库文件拷贝至μCGUI/GUI/Font目录下,在编译环境KeilμVision4下将该文件添加进工程;
(3)在GUI.h中字库声明处增加该字体的extern声明:
extern GUI_FLASH const GUI_FONT GUI_FontHZ_SimSun_29;
(4)在应用程序中字体设置处将字体设置为GUI_FontHZ_SimSun_29。
经测试发现,中文显示正常。
2、通电软件启动后观察到界面存在闪烁现象。
为保障数据信息的实时显示,界面处于实时刷新状态,页面窗口不断的重绘,而当一个存储设备用于一个窗口的重绘,所有绘制操作自动发送到一个存储设备上下文并在内存中执行。所有绘制操作执行之后,窗口在LCD上重绘立即反应所有的更新,当更新较为频繁时就会出现闪烁,严重影响视觉感受和使用效果,未解决这一现象,程序中启用了用于重绘窗口的内存设备,在创建界面前调用WM_EnableMemdev(WM_HBKWIN)函数。经测试发现,闪烁现象基本消失。
3、I/O口矩阵键盘去抖
调试过程中发现,按键在被按下时,会多次触发按键中断,导致界面的连续反应,这是由于机械触点的弹性作用,按键在闭合时不会马上稳定的接通,在断开时也不会一下断开,闭合和断开的瞬间均伴随有一连串抖动,抖动时间与案件机械特性及操作人员按键动作有关,大概在30-200ms。按键去抖的常见方法是延时去抖,即监测到按键按下后延时一定时间,此期间不再响应按键事件,但这种方法在延时期间一直占用资源,会导致其它任务无法进行,经测试,在连续按键期间,会严重影响1Hz界面数据刷新及指示灯控制,会出现最多有3s界面停止刷新的情况,迟滞感严重。为解决这一问题,创新性的采用了按键中断+定时判断相结合的方法,即在按键中断中获取键值,在10ms软件定时器中判断相同键值出现的次数,两次以上才认为是一次成功的按键,再去进行按键处理。此种方法不会影响其它任务的进行,同时去抖动效果明显。
本发明经在移动式航向基准设备上测试,成功实现了人机交互单元软件的各项需求,满足了设备使用。
需要强调的是,本发明所述实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (6)
1.一种用于移动式航向基准设备的嵌入式软件开发方法,其特征在于:包括以下步骤:
步骤1、完成基于移动式航向基准设备人机交互单元处理器和显示屏的μC/OS-II操作系统和μCGUI图形支持系统的移植;
步骤2、基于μCGUI图形支持系统实现信息分类多页面显示及消息处理,并选用隐藏/显示方式实现界面中多页面切换功能;并使用μCGUI提供的视窗管理器,通过其回调机制,实现了各窗口事件的处理,从而自主完成与其它任务的实时交互;
步骤3、结合人机交互单元软件需求进行μC/OS-II操作系统任务分解,实现按键处理任务、指示灯处理任务、数据解析任务和界面显示任务。
2.根据权利要求1所述的一种用于移动式航向基准设备的嵌入式软件开发方法,其特征在于:所述步骤1的具体步骤包括:
(1)首先根据系统配置文件完成对μC/OS-II操作系统的裁剪;
(2)然后在剪裁后的μC/OS-II操作系统的工程中,移植μCGUI图形支持系统。
3.根据权利要求2所述的一种用于移动式航向基准设备的嵌入式软件开发方法,其特征在于:所述步骤1第(2)步的具体步骤包括:
①调通LCD控制器硬件的底层驱动;
首先根据硬件管脚定义,修改BSP目录下LCD驱动文件lcd_driver.c,所选液晶屏为24位真色彩TFT屏,有24个输入输出管脚,分别对应R、G、B三种颜色,每个颜色由8个管脚控制;然后对比液晶屏驱动时序与LPC1788芯片LCD控制器时序,设置水平时序控制寄存器和垂直时序控制寄存器,根据系统时钟设置LCD时钟配置寄存器,最后设置LCD控制寄存器;
②对μCGUI进行高层配置;
首先将μCGUI代码添加进工程;并修改guiconf.h文件,将gui_os配置为1,使其支持多任务的操作系统;然后根据液晶屏硬件有关的各种属性修改LCDConf.h文件;
③对μCGUI进行底层接口配置;
μCGUI通过gui文件夹下的LCDDriver下的LCDEval.c对液晶屏驱动文件lcd_driver.c进行调用;通过液晶屏的画点函数和初始化函数建立联系;通过void LCD_L0_SetPixellndex(int x,int y,int Pixellndex)和unsigned int LCD_L0_GetPixellndex(int x,int y)函数操作显存;通过int LCD_L0_Init(void)函数添加lcd_driver.c中的LCD初始化函数Lcd_drive_Init();
④对时间函数进行修改;
修改μCGUI源码中的OS文件夹下GUI_X_UCOS.C文件,将该文件中OS_x_Delay()改为μC/OS-II中的函数OSTimeDly()。
4.根据权利要求1或2所述的一种用于移动式航向基准设备的嵌入式软件开发方法,其特征在于:所述步骤2的选用隐藏/显示方式实现界面中多页面切换功能的具体方法为:程序启动时创建所有的页面窗口,程序运行时隐藏当前无需显示的页面,同时显示当前需要显示的页面,利用WM_HideWindow()和WM_ShowWindow()实现界面切换程序。
5.根据权利要求1或2所述的一种用于移动式航向基准设备的嵌入式软件开发方法,其特征在于:所述步骤2的各窗口事件的处理主要包括自定义按键的处理和页面数据定时刷新处理;其中,自定义按键处理方法为:通过中断获取按键键值后,在按键处理任务中调用GUI_SendKeyMsg()函数,把按键数据发送到输入焦点所在窗口进行处理;页面数据定时刷新处理方法为:采用自定义消息,在定时任务中通过调用WM_SendMessageNoPara()函数定时向当前活动窗口发送更新显示消息。
6.根据权利要求1或2所述的一种用于移动式航向基准设备的嵌入式软件开发方法,其特征在于:所述步骤3的具体步骤包括:
(1)当串口接收到数据后产生中断,进入串口中断服务程序,在串口中断服务程序中获取正确的串口报文后,释放数据接收处理信号量,数据解析任务获取到数据接收处理信号量后,进行数据解析,解析出的全局数据供指示灯处理任务和界面显示任务使用;
(2)当按键按下后,产生GPIO中断,进入GPIO中断服务程序,在GPIO中断服务程序中获取键值后,释放按键处理信号量,按键处理任务获取按键处理信号量,发送键值给界面显示任务;
(3)界面显示任务处理按键事件;根据1000Hz系统节拍,创建10Hz软件定时器,在软件定时器中,以1Hz频率释放指示灯控制信号量,指示灯处理任务获取指示灯控制信号量后,根据从数据解析任务中获取的当前工作状态,控制指示灯亮灭;在软件定时器中,以1Hz频率发射更新显示消息,界面显示任务获取更新显示消息后,根据串口接收数值,更新页面显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711397096.XA CN108170475A (zh) | 2017-12-21 | 2017-12-21 | 一种用于移动式航向基准设备的嵌入式软件开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711397096.XA CN108170475A (zh) | 2017-12-21 | 2017-12-21 | 一种用于移动式航向基准设备的嵌入式软件开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108170475A true CN108170475A (zh) | 2018-06-15 |
Family
ID=62523205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711397096.XA Pending CN108170475A (zh) | 2017-12-21 | 2017-12-21 | 一种用于移动式航向基准设备的嵌入式软件开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170475A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113447864A (zh) * | 2021-06-22 | 2021-09-28 | 中国船舶重工集团公司第七0七研究所 | 一种用于海洋测量无人艇自动收放磁力仪的系统及其方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101319902A (zh) * | 2008-07-18 | 2008-12-10 | 哈尔滨工程大学 | 一种低成本组合式定位定向装置及组合定位方法 |
CN103344250A (zh) * | 2013-07-05 | 2013-10-09 | 深圳市大疆创新科技有限公司 | 无人飞行器的飞行辅助方法和装置 |
CN104197931A (zh) * | 2014-09-12 | 2014-12-10 | 哈尔滨恒誉名翔科技有限公司 | 一种基于fpga的微型航姿系统三维显示装置 |
CN105573759A (zh) * | 2015-12-15 | 2016-05-11 | 中国电子科技集团公司第四十一研究所 | 基于stm32处理器的医用注射泵软件结构 |
CN105738929A (zh) * | 2016-03-02 | 2016-07-06 | 北京盈想东方科技发展有限公司 | 一种北斗通信导航一体化机载终端 |
US9772186B1 (en) * | 2010-05-28 | 2017-09-26 | Tanenhaus & Associates, Inc. | Miniaturized inertial measurement and navigation sensor device and associated methods |
CN110133693A (zh) * | 2019-06-06 | 2019-08-16 | 张天晔 | 基于ARM Crotex-M4和μCGUI的北斗卫星定位终端及其定位方法 |
-
2017
- 2017-12-21 CN CN201711397096.XA patent/CN108170475A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101319902A (zh) * | 2008-07-18 | 2008-12-10 | 哈尔滨工程大学 | 一种低成本组合式定位定向装置及组合定位方法 |
US9772186B1 (en) * | 2010-05-28 | 2017-09-26 | Tanenhaus & Associates, Inc. | Miniaturized inertial measurement and navigation sensor device and associated methods |
CN103344250A (zh) * | 2013-07-05 | 2013-10-09 | 深圳市大疆创新科技有限公司 | 无人飞行器的飞行辅助方法和装置 |
CN104197931A (zh) * | 2014-09-12 | 2014-12-10 | 哈尔滨恒誉名翔科技有限公司 | 一种基于fpga的微型航姿系统三维显示装置 |
CN105573759A (zh) * | 2015-12-15 | 2016-05-11 | 中国电子科技集团公司第四十一研究所 | 基于stm32处理器的医用注射泵软件结构 |
CN105738929A (zh) * | 2016-03-02 | 2016-07-06 | 北京盈想东方科技发展有限公司 | 一种北斗通信导航一体化机载终端 |
CN110133693A (zh) * | 2019-06-06 | 2019-08-16 | 张天晔 | 基于ARM Crotex-M4和μCGUI的北斗卫星定位终端及其定位方法 |
Non-Patent Citations (5)
Title |
---|
JACK: "LPC1788 ucos基础上面加 uCGUI", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_A39298C601013HUJ.HTML》 * |
周秀珍等: "《51单片机应用技术项目教程》", 31 August 2016 * |
李文仲等: "《ARM9微控制器与嵌入式无线网络实战》", 30 June 2008 * |
粤嵌教育: "利用μC/GUI实现无纸记录仪界面", 《HTTP://WWW.GEC-EDU.ORG/YYQY/SHOW/54694.HTML》 * |
青岛东合信息技术有限公司: "《Cortex-M3开发技术及实践》", 31 July 2013 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113447864A (zh) * | 2021-06-22 | 2021-09-28 | 中国船舶重工集团公司第七0七研究所 | 一种用于海洋测量无人艇自动收放磁力仪的系统及其方法 |
CN113447864B (zh) * | 2021-06-22 | 2022-10-28 | 中国船舶重工集团公司第七0七研究所 | 一种用于海洋测量无人艇自动收放磁力仪的系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106233249B (zh) | 用于管理睡眠模式的处理器的图形缓冲区的装备和方法 | |
USRE48911E1 (en) | Application programming interface for providing native and non-native display utility | |
US10503344B2 (en) | Dynamic cross-environment application configuration/orientation | |
US9804665B2 (en) | Apparatus and method for passing event handling control from a primary processor to a secondary processor during sleep mode | |
US10528210B2 (en) | Foreground/background assortment of hidden windows | |
US9798378B2 (en) | Apparatus and method for awakening a primary processor out of sleep mode | |
US8966379B2 (en) | Dynamic cross-environment application configuration/orientation in an active user environment | |
CN103339600B (zh) | 立即远程呈现 | |
WO2021068713A1 (zh) | 一种页面显示方法及穿戴设备 | |
CN111156855A (zh) | 一种电子战装备虚拟训练人机交互系统 | |
CN111399624B (zh) | 一种基于嵌入式的低功耗图像显示方法及系统 | |
CN102637125A (zh) | 宫格界面的显示方法及移动终端 | |
CN108170475A (zh) | 一种用于移动式航向基准设备的嵌入式软件开发方法 | |
CN113504944A (zh) | 一种新型智能手表的嵌入式gui框架 | |
CN101751197A (zh) | 多层次输入系统、电脑程序产品及其方法 | |
CN104199671A (zh) | 一种易移植小型图形系统的实现方法 | |
CN113778622A (zh) | 云桌面键盘事件处理方法、装置、设备及存储介质 | |
TW201439893A (zh) | 開啓顯示器前更新欲顯示內容的處理方法、模塊及其電子裝置 | |
CN111949150A (zh) | 控制外设切换方法、装置、存储介质及电子设备 | |
Morgado et al. | Separating gesture detection and application control concerns with a multimodal architecture | |
CN116679864B (zh) | 一种触控交互的处理方法及电子设备 | |
Wilkes et al. | The rainbow workstation | |
Jinhui et al. | The application of qt/embedded on embedded linux | |
CN111045677A (zh) | 基于嵌入式Linux的图形界面系统及图形界面设置方法 | |
CN110908748A (zh) | 一种支持单屏多输入法应用的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180615 |