当前位置: 首页 > news >正文

石家庄免费网站设计网店代运营哪个好

石家庄免费网站设计,网店代运营哪个好,国外 wordpress模板下载,wordpress 悬浮通知实验目的 掌握在 UCOsH操作系统下编写应用程序 的基本方法 实验内容 在移植好的UCOsII项 目中添加串口、LCD、 键盘的驱动程序 学习在UCOSII下 ,多应用任务的简单编程实例 实验设备 EL-RAM-860教 学 实验 箱 ,PentiumII以上 的 PC机 ,仿 真 调试 电缆 ,串 口直 连 电 缆 。 PC操…实验目的 掌握在 UCOsH操作系统下编写应用程序 的基本方法 实验内容 在移植好的UCOsII项 目中添加串口、LCD、 键盘的驱动程序 学习在UCOSII下 ,多应用任务的简单编程实例 实验设备 EL-RAM-860教 学 实验 箱 ,PentiumII以上 的 PC机 ,仿 真 调试 电缆 ,串 口直 连 电 缆 。 PC操 作 系统 WIN98或 WIN⒛00或 WINXP, ADs1.2集 成 开发环 坑 , 仿真 调试 驱动程 序 。实验步骤实验题目1 在界面显示一个半径为20的红色圆圈且该圆圈随着上、下、左、右键的按下往该方向平移6个单位。当捕获回车按键后串口输出当前激活按键的值如Left Button Pressed!等实验代码 代码说明 Main此函数创建并启动了任务一利用“邮箱”来进行多任务间的通信。 Task1创建并启动了任务2,3,4也是利用“邮箱” 来进行多任务间的通信。通过设置任务的优先级来控制任务的调度。 Task2主要是控制LED灯的交替闪烁效果 Task3主要是向超级终端中输出键盘上的按键值代码只变动了输出内容。    Task4是进行GUI任务代码变动主要是改写此函数函数编写代码已经进行了相关的注释。 void Task_4(void *pdata) { I32 number;INT8U Loop;for(;;) { number GUI_WaitKey();Loop TRUE;do{switch (number){case GUI_KEY_START: // 得到开始命令 Set_Color(GUI_BLUE);Fill_Rect(0,0,639,479); //画窗口的边框Set_Color(GUI_WHITE);Set_BkColor (GUI_BLUE); //设置窗口的背景颜色Fill_Rect(0,0,639,2); Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479);Fill_Rect(637,0,639,479); Set_Color(GUI_YELLOW);Set_Font (CHINESE_FONT16);Disp_String (CN_start这是一个多任务显示的例程CN_end,50,30); Set_Color(GUI_RED); //画红色的圆Fill_Circle (320, 240, 20); //圆心坐标、半径为20Loop FALSE;number 0;break;default: // 等待主任务发送的键值命令number GUI_WaitKey(); Loop TRUE;break;}}while(LoopTRUE);do{switch (number) {case GUI_KEY_UP: //选择上移Set_Color(GUI_BLUE); //将原先的圆消失掉Fill_Rect(0,0,639,479); //重新绘制窗口Set_Color(GUI_WHITE);Set_BkColor (GUI_BLUE);Fill_Rect(0,0,639,2); //窗口的四条边框的绘制Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479);Fill_Rect(637,0,639,479);Set_Color(GUI_RED);if(y-201){y240; //如果圆要超过上边界将圆设置到中心}else{yy-6;}Fill_Circle(x, y, 20);Loop TRUE;number 0;break; case GUI_KEY_DOWN: //选择下移Set_Color(GUI_BLUE); //将原先的圆消失掉Fill_Rect(0,0,639,479); //重新绘制窗口Set_Color(GUI_WHITE);Set_BkColor (GUI_BLUE); Fill_Rect(0,0,639,2); //窗口的四条边框的绘制Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479);Fill_Rect(637,0,639,479);Set_Color(GUI_RED);if(y20479){ //如果圆要超过下边界将圆设置到中心y240;}else{yy6;}Fill_Circle(x, y, 20); Loop TRUE;number 0;break;case GUI_KEY_RIGHT: //选择右移Set_Color(GUI_BLUE); //将原先的圆消失掉Fill_Rect(0,0,639,479); //重新绘制窗口Set_Color(GUI_WHITE); Set_BkColor (GUI_BLUE);Fill_Rect(0,0,639,2); //窗口的四条边框的绘制Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479);Fill_Rect(637,0,639,479);Set_Color(GUI_RED); //x为全局变量if(x20639){ //如果圆要超过右边界x320; //将圆心重新设置到中间}else{ xx6; //每一次右移x值加6}Fill_Circle(x, y, 20); Loop TRUE;number 0; break; case GUI_KEY_LEFT: //选择左移 Set_Color(GUI_BLUE); //将原先的圆消失掉Fill_Rect(0,0,639,479); //重新绘制窗口Set_Color(GUI_WHITE);Set_BkColor (GUI_BLUE);Fill_Rect(0,0,639,2); //窗口的四条边框的绘制Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479); Fill_Rect(637,0,639,479);Set_Color(GUI_RED);if(x-201){ //如果圆要超过左边界x320; //将圆心重新设置到中间}else{ xx-6;}Fill_Circle(x, y, 20);Loop TRUE;number 0;break;case GUI_KEY_ESCAPE: // 得到退出命令Set_Color(GUI_BLUE);Fill_Rect(0,0,639,479);Set_Color(GUI_WHITE);Fill_Rect(0,0,639,2);Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479);Fill_Rect(637,0,639,479);Loop FALSE;number 0;break; default: // 等待主任务发送的键值命令number GUI_WaitKey();Loop TRUE;break;}}while(Loop TRUE);} } void Task_3(void *pdata) {for(;;){if(key_number!0xff){ Uart_Printf(key_number%x Button Pressed!\n,key_number); //任务的干得活儿就是向超级终端发送内容key_number0xff;OSTimeDly(30); //延时100个节拍}} } 实验题目2 在编写一个任务5此任务中完成设置其优先级为60绘制一个圆此圆的初始半径为2然后扩大到50之后缩小为半径为2的圆。扩大的频率为LED灯闪烁的频率的1/2. 代码的实现 在task1中创建并启动任务task5在task2中设置让task2闪烁完一回线程睡眠OSTimeDly(30); 让低优先级的task5得到执行task2中创建一个信号量让task2运行两次往信号量中扔一把钥匙达到灯闪烁频率的1/2是圆扩大的频率task5负责接受取出钥匙得到运行。 void Task_5(void *pdata) { I32 number;INT8U Loop;for(;;) { Key_P OSMboxPend(Key_Mbox1, 0, err); //取钥匙获取执行机会number GUI_WaitKey();// 得到开始命令 Set_Color(GUI_BLUE);Fill_Rect(0,0,639,479); //画窗口的边框Set_Color(GUI_WHITE);Set_BkColor (GUI_BLUE); //设置窗口的背景颜色Fill_Rect(0,0,639,2); Fill_Rect(0,0,2,479);Fill_Rect(0,477,639,479);Fill_Rect(637,0,639,479); Set_Color(GUI_YELLOW);Set_Font (CHINESE_FONT16);Disp_String (CN_start这是一个多任务显示的例程CN_end,50,30); R2; //此处R是全局变量If(R50){R2; //当圆半径到达了50时圆半径回到2}Set_Color(GUI_RED); //画红色的圆Fill_Circle (320, 240, R); //圆心坐标、半径为20Loop FALSE;number 0; Loop TRUE;number GUI_WaitKey(); Loop TRUE;}} void Task_2(void *pdata) {INT32U i,flag0;K1; //k是全局变量控制代码执行两次往信号量里//面扔一把钥匙Key_Mbox1 OSMboxCreate((void *)0);//创建信号量Key_Mbox1for(;;){k; If(k%20) OSMboxPost(Key_Mbox1,key_number);//往信号量Key_Mbox1仍钥匙OSTimeDly(30); if(flag0){for(i0;i100000;i);rGPGDAT rGPGDAT~(0x38)|(0x18);for(i0;i100000;i);flag 1;}else{for(i0;i100000;i);rGPGDAT rGPGDAT~(0x38)|(0x28);for(i0;i100000;i);flag 0;}OSTimeDly(30); //延时30个节拍} } 实验结果截图 问题以及总结 本次实验过程中绘制红心圆的时候往上移左移、右移发现之前的圆不会消失于是就造成了圆移动的过程中绘画成一条线于是我就想到每次点击上下移动之前把原先这个圆给删除掉但是GUI中又没有提供相关的函数于是借鉴了一下别人的做法每一移动触发之前先把面板上的组件清空把原先的窗口设置成白色然后重新绘制窗口这样之前的圆就消失了。 在任务二中task5老是得不到机会运行因为task5的优先级太低而task2中总是在运行导致低优先级的task5得不到机会运行后来在老师的帮助下将task任务线程睡眠也就是延迟30个节拍让task5得到机会能够运行。
http://www.huolong8.cn/news/267438/

相关文章:

  • 营销网站建设联系方式thinkphp5 网站开发
  • 简单网站的设计与制作公司文化墙设计
  • 定制做网站费用明港网站建设公司
  • 大连网站建设价格wordpress主页居中
  • 怎么给喜欢的人做网站泰州网站建设优化
  • 电商网站建设公司中国seo第一人
  • 中国建设劳动学会官方网站是多少公众号里的电影网站怎么做的
  • 邢台做wap网站价格网站添加新关键词
  • 导游网站如何建设的宿州城市建设投资网站
  • 天津市建设局网站网站建设基本流程前期
  • 芜湖营销型网站制作海南建设教育执业网站
  • 做测算的网站电子商务网站建设实践报告
  • 吉林平台网站建设推荐网页设计制作报告
  • html网站底部导航栏怎么做南城网站建设公司如何
  • 动态小网站应用之星 wordpress
  • 做网站建设优化的公司深圳品牌月饼排名
  • 凡科网站怎样做淘宝联盟怎么新建网站
  • 房产信息网站百度官网登录入口
  • 网站推广入口查看网站是否wordpress
  • 市场上网站开发价格英语网站如何做社群
  • 网站地图生成工具wordpress 付款
  • 查询网站所有死链接外贸公司出口退税申报流程
  • wordpress授权插件seo还有前景吗
  • 西昌手机网站建设成都彩钢顶防水做游戏直播那个网站
  • 怎么做招聘网站设计网站建设龙岗
  • 网站内容怎么写有利于排名wordpress+下载受限
  • 网站建设在实际工作中的意义在线查询营业执照
  • 网站设置反爬虫的常用方法有哪些横泉水库建设管理局网站
  • 利于seo优化的网站网站系统繁忙是什么原因
  • 做爰片的网站自助网站建设价格