⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 本程序在博创ARM3000实验箱已运行证明可行.移植了uC/OS-II操作系统,使用的是MiNiGUI,微控制芯片是S3C44B0
💻 C
📖 第 1 页 / 共 2 页
字号:
#include"..\ucos-ii\includes.h"               /* uC/OS interface */
#include "..\ucos-ii\add\osaddition.h"
#include "..\inc\drv.h"
#include "..\inc\drv\tchscr.h"
#include <string.h>
#include<math.h>
#pragma import(__use_no_semihosting_swi)  // ensure no functions that use semihosting 

///******************任务定义***************///
OS_STK Main_Stack[STACKSIZE*8]={0, };   //Main_Test_Task堆栈
void Main_Task(void *Id);             //Main_Test_Task
#define Main_Task_Prio     12

/**************已经定义的OS任务*************
tcp监控任务		11
以太网物理层监控任务	8
触摸屏任务		9
键盘任务		10
lcd刷新任务		59
系统任务		1
*****************************************************/


/*--  文字:  武  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
U16  Hanzi01[] = {0x0080,0x00A0,0x0090,0x0680,0x18F0,0x0380,0x3C80,0x0480,
 
                 0x1740,0x1440,0x1420,0x1722,0x1812,0x600A,0x0006,0x0000};
                 
/*--  文字:  科  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/

U8  Hanzi02[] = {0x00,0x10,0x02,0x10,0x04,0x10,0x38,0x90,0x08,0x50,0x0E,0x90,0x78,0x50,0x0E,0x1E,
				0x19,0xF0,0x28,0x10,0x48,0x10,0x88,0x10,0x08,0x10,0x08,0x10,0x00,0x10,0x00,0x00};
				

    int     res;
    int oldx,oldy;          //保存原来坐标系位置    
    int     jian;
    int     ge;
    int     kaiguan1;
    int     kaiguan2;
    int     kaiguan3; 


///*****************事件定义*****************///
OS_EVENT *Nand_Rw_Sem;                   //Nand_Flash读写控制权旗语
//and you can use it as folloeing:
//    Nand_Rw_Sem=OSSemCreate(1);        //创建Nand-Flash读写控制权旗语,初值为1满足互斥条件//
//    OSSemPend(Nand_Rw_Sem,0,&err);
//    OSSemPost(Nand_Rw_Sem);

OS_EVENT *Uart_Rw_Sem;                   //Uart读写控制权旗语
//and you can use it as folloeing:
//    Uart_Rw_Sem=OSSemCreate(1);        //创建Uart读写控制权旗语,初值为1满足互斥条件//
//    OSSemPend(Uart_Rw_Sem,0,&err);
//    OSSemPost(Uart_Rw_Sem);
//////////////////////////////////////////////////////////

void initOSGUI()	//初始化操作系统的图形界面
{
	initOSMessage();
	initOSList();
	initOSDC();
	initOSCtrl();
	initOSFile();
}

//***************************************************************/
//*设置背景框													*/
//*背景框大小及颜色  										    */
//***************************************************************/
                    //FillRect(pdc, left,top , right,  bottom,DrawMode, color)
           

                    void  SetKuang(PDC pdc, U32 color,U8 width,int x1, int y1, int x2, int y2)
	                            {
	                            SetPenColor(pdc, color);
				                SetPenWidth(pdc, width);
				                SetDrawOrg(pdc,0,0, &oldx, & oldy); //设置绘图原点为屏幕中心
				                MoveTo(pdc, x1, y1);//移动
				                LineTo(pdc, x2, y1);//画线
				                MoveTo(pdc, x1, y2);//移动
				                LineTo(pdc, x2, y2);//画线
				                				                
				                MoveTo(pdc, x1, y1);//移动
				                LineTo(pdc, x1, y2);//画线				                
					            MoveTo(pdc, x2, y1);//移动
				                LineTo(pdc, x2, y2);//画线
				                }
				                


				                
//***************************************************************/
//*设置背景													    */
//*背景框颜色  										            */
//***************************************************************/
                    //FillRect(pdc, left,top , right,  bottom,DrawMode, color)
           

                    void  Setbk(PDC pdc, U32 color,U8 width)
                           {    
                                SetPenColor(pdc, color);		                
				                SetPenWidth(pdc, width);
				                         
	                       for(res=20;res<=220;res+=20)
		                        {
		                        MoveTo(pdc, 25, res);//移动
	                            LineTo(pdc, 295, res);//画线
		                        }
		                   }    				                


//***************************************************************/
//*坐标轴													*/
//*坐标轴大小及颜色  										    */
//***************************************************************/
                    //FillRect(pdc, left,top , right,  bottom,DrawMode, color)
                          void  Zuobiao(PDC pdc,int x1, int y1, int x2, int y2)
                              {				                
                                MoveTo(pdc, x1, y1);    //纵轴箭头
				                LineTo(pdc, x1, y2);    //原点
                                MoveTo(pdc, x1, y1);    //左须
				                LineTo(pdc, x1-2, y1+2);
                                MoveTo(pdc, x1, y1);    //右须
				                LineTo(pdc, x1+2, y1+2);
				                				                				                
				                MoveTo(pdc, x1, y2);    //原点
				                LineTo(pdc, x2, y2);    //横轴箭头
				                MoveTo(pdc, x2, y2);
				                LineTo(pdc, x2-2, y2-2);   //上须			                				                	                		    
				                MoveTo(pdc, x2, y2);
				                LineTo(pdc, x2-2, y2+2);   //下须                  
                                }
                                
                                
                                
    //***************************************************************/
	//*画表格												        */
	//*参数:左上与右下两点,行列数									*/
	//***************************************************************/
	
	
                        void   table(PDC pdc, int x1, int y1, int x2, int y2, int c,int v)
	                        {
                                SetPenColor(pdc, 0x00);		                
				                SetPenWidth(pdc, 1);
	                            jian=(y2-y1)/c;
                                ge=(x2-x1)/v; 			                
				                				                
	                       for(res=y1;res<=y2;res+=jian)
	                            {
		                        MoveTo(pdc, x1, res);
		                        LineTo(pdc, x2, res);
		                        }
     		                        
	                       for(res=x1;res<=x2;res+=ge)
	                        	{
		                        MoveTo(pdc, res, y1);
		                        LineTo(pdc, res, y2);
		                        }
		                        
                             }
//***************************************************************/
	//*函数名:Set_pixel												*/
	//*输入参数:点坐标(X,Y)										    */
	//*         color :颜色											*/
	//*输    出: 无											   		*/			
	//*功能: 设置某一点的颜色										*/
	//***************************************************************/
	
	
						void Set_pixel(U16 x,U16 y,U8 color)
							{
								*(pLCDBuffer16+80*y+x/4)&=~(0x0ff<<((3-x%4)*8));
								*(pLCDBuffer16+80*y+x/4)|=color<<((3-x%4)*8);	
							} 
	
	
    //***************************************************************/
	//*函数名:Draw_line												*/
	//*输入参数:点坐标(X,Y)										    */
	//*         color :颜色											*/
	//*输出: 无											   			*/			
	//*功能: 设置某一点的颜色										*/
	//***************************************************************/
						void  Draw_line(U16 x1,U16 y1,U16 lenth,U8  color)
							{
							    U16  x,y;
							    y=y1;
							    for(x=x1;x<x1+lenth;x++)
							    Set_pixel(x, y,color);
							}

	 //***************************************************************/
	//*函数名:Draw_block											*/
	//*输入参数:点坐标(X,Y)										    */
	//*         color :颜色											*/
	//*输出: 无											   			*/			
	//*功能: 设置某一点的颜色										*/
	//***************************************************************/
					void  Draw_block(U16 x1,U16 y1,U16 lenth,u16 width,U8  color)
							{
							    U16  x,y;
							    for(y=y1;y<y1+width;y++)
							    for(x=x1;x<x1+lenth;x++)
							    	{
							    	  Set_pixel(x, y,color);
							    	}
							}
	



//U8  Hanzi001[] = {0x000000,0x001800,0x001800,0x0009xC0,0x000860,0x000800,
      //          0x00EC00,0x078C00,0x0007C0,0x003C00,0x01C400,0x3EC600,
       //         0x00C200,0x047200,0x064300,0x044100,0x044180,0x0470C0,
       //         0x05C0C4,0x0F0066,0x3C003E,0x00001E,0x00000E,0x000000}  ;
                
                                   
	//***************************************************************/
	//*函数名:Disp_Hanzi											*/
	//*输入参数:点坐标(X,Y)										    */
	//*         color :颜色											*/
	//*输出: 无											   			*/			
	//*功能: 设置某一点的颜色										*/
	//***************************************************************/ 
	
					void  Disp_Hanzi(U16  Hanzi[],u16 x,u16 y)
					        {
					           int  i,j;
					           U16  temp;
					           u16  x1,y1;
					           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -