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

📄 main.c

📁 在ucos-ii下用LPC2290的spi端口驱动M65的液晶屏
💻 C
📖 第 1 页 / 共 2 页
字号:
  lcd_dat0(0x08+x);  // start is 8, not 0
  lcd_dat0(0x01);
  lcd_dat0(0x08+x+w-1);  // end is 00x8B = 0x83+8
  lcd_dat0(0x01);
  
  lcd_cmd(SD_PSET);
  lcd_dat0(y);
  lcd_dat0(y+h-1);


  lcd_cmd(RAMWR);
  
  for (i=0; i<h*w/8; i++) // every column of the character
  {        
        ch=pic[i];     mask=0x80;

        for (j=0; j<8; j++)  // write the pixels
        {
          if (ch&mask)    {     lcd_dat16(textcolor);     }
          else            {     lcd_dat16(backcolor);     }
          mask=mask/2;
        }  // for p
  }
  LCD_CS_Set(); 
  //PORTB |= _BV(LCD_CS);  // deselect display    

}





void print_asc(INT8U x,INT8U y);

void print_asc(INT8U x,INT8U y)
{ INT8U k,i=0,j=0;
for(k=0;k<96;k++)
   {
   put_char(x+i*CHAR_W,y+j*CHAR_H,32+k);
   i++;
   if(i==16)
   
{  i=0;j++;}


   }

}













/*********************************************************************************************************
** Function name : main
** Descriptions  : 主函数
** Input         : 无 
** Output        : 无 
** Created Date  : 2006-04-11
********************************************************************************************************/
uint8  MCU_IP[4];                           // 设置MCU的IP地址等信息
uint8  MCU_Mark[4];
uint8  MCU_GateWay[4];
uint16 MCU_Port;
uint8  PC_IP[4];
uint16 PC_Port;

//定义CAN控制器结构体指针
stcCAN *pCAN1;
//定义CAN发送结构,数据扩展帧,数据长度8,数据0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
stcCANFrame CANTxBuf = {FALSE, TRUE, 0x08, 0x00, {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}};

int main (void)
{
    #if OS_CRITICAL_METHOD == 3				// Allocate storage for CPU status register */
    OS_CPU_SR  cpu_sr;
	#endif

    TargetInit();      						// 初始化设备

    GetIpSet(MCU_IP);
    GetMarkSet(MCU_Mark);
    GetGateWaySet(MCU_GateWay);
    ZlgipInitial(MCU_IP, MCU_GateWay, MCU_Mark);

    PINSEL1 &= ~(3<<8);                     // 初始化KEY1
    PINSEL1 &= ~(3<<12);                    // 初始化KEY2        
    IO0DIR  &= ~KEY1;  
    IO0DIR  &= ~KEY2;                                                     
    IO0DIR  |= LED;                         // 初始化LED
    IO0DIR  |= BUZZER;                      // 初始化BUZZER

    BUZZER_Set();
    OSTimeDly(OS_TICKS_PER_SEC/10);
    BUZZER_Clr();
    OSTimeDly(OS_TICKS_PER_SEC/10);
    BUZZER_Set();
    OSTimeDly(OS_TICKS_PER_SEC/10);
    BUZZER_Clr();

    OSTaskCreateExt(TASK0,
                    (void *)0,
                    &TASK0_STACK[TASK1_STACK_SIZE-1],
                    TASK0_PRIO,
                    TASK0_ID,
                    &TASK0_STACK[0],
                    TASK0_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK1,
                    (void *)0,
                    &TASK1_STACK[TASK1_STACK_SIZE-1],
                    TASK1_PRIO,
                    TASK1_ID,
                    &TASK1_STACK[0],
                    TASK1_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK2,
                    (void *)0,
                    &TASK2_STACK[TASK2_STACK_SIZE-1],
                    TASK2_PRIO,
                    TASK2_ID,
                    &TASK2_STACK[0],
                    TASK2_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK3,
                    (void *)0,
                    &TASK3_STACK[TASK3_STACK_SIZE-1],
                    TASK3_PRIO,
                    TASK3_ID,
                    &TASK3_STACK[0],
                    TASK3_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK4,
                    (void *)0,
                    &TASK4_STACK[TASK4_STACK_SIZE-1],
                    TASK4_PRIO,
                    TASK4_ID,
                    &TASK4_STACK[0],
                    TASK4_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); 
                    
    OSTaskCreateExt(TASK5,
                    (void *)0,
                    &TASK5_STACK[TASK5_STACK_SIZE-1],
                    TASK5_PRIO,
                    TASK5_ID,
                    &TASK5_STACK[0],
                    TASK5_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK6,
                    (void *)0,
                    &TASK6_STACK[TASK6_STACK_SIZE-1],
                    TASK6_PRIO,
                    TASK6_ID,
                    &TASK6_STACK[0],
                    TASK6_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK7,
                    (void *)0,
                    &TASK7_STACK[TASK7_STACK_SIZE-1],
                    TASK7_PRIO,
                    TASK7_ID,
                    &TASK7_STACK[0],
                    TASK7_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);                             

	while (1)
    {
		OSTimeDly(OS_TICKS_PER_SEC/10); 
    }   
}

/*********************************************************************************************************
** Function name: TASK0
** Descriptions:  创建CAN控制器
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK0(void *pdata)  
{   
	pdata = pdata;
	//CAN控制器创建
   // pCAN1 = CAN_Create(CAN_CH2,10,BTR_500K,NULL);
    //设定CAN的中断函数为非向量中断 
   // SetDefIRQAddr((void*)IntEnty);

	while (1)
    {	
		OSTimeDly(OS_TICKS_PER_SEC); 
    }    
}

/*********************************************************************************************************
** Function name: TASK1
** Descriptions:  CANbus发送
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK1(void *pdata)
{
	pdata = pdata;

	while (1)
    {	
		OSTimeDly(OS_TICKS_PER_SEC); 
		OSTimeDly(OS_TICKS_PER_SEC);
		//正常发送,帧ID++
		//if(TRUE == Write(pCAN1, &CANTxBuf, CANTxCMD_SIGSEL))
		//{
		//	CANTxBuf.ID++;
		//}
    }    
}


/*********************************************************************************************************
** Function name: TASK2
** Descriptions:  
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK2(void *pdata)
{pdata = pdata;
	while(1)  OSTimeDly(OS_TICKS_PER_SEC);
}

/*********************************************************************************************************
** Function name: TASK3
** Descriptions:  无
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK3(void *pdata)
{

  //INT8U i;
 // INT16U cnt;
 // INT8U nr[7];
  
  //INT8U txt[]=". Zeile L2F\0";
  INT8U txt[]="M65 Display\0";
  pdata = pdata;
  port_init();

  lcd_init_c();

  fill_screen(0x07E0);
  backcolor=0x07E0;
 // textcolor=0x35FA;
textcolor=0x101F;
  Disp_pic(10, 4, 112, 17,(uint8 *)siemenslogo);
  textcolor=0xF800;
  print_str(22,24,txt);
  textcolor=0x001F;
  Disp_pic(42, 42, 48,30,(uint8 *)wujun);
  textcolor=0xF800;
  print_asc( 0,78);


 // cnt=0;
  while (1)   
  {
   // ubi2dec(cnt,nr,1);
  // print_str(0       ,(cnt*CHAR_H) % (12*14),nr);
  // print_str(5*CHAR_W,(cnt*CHAR_H) % (12*14),txt);
   
  //  textcolor=cnt;
     // cnt++;
    
    
   OSTimeDly(OS_TICKS_PER_SEC*4); 

   

  }
    
}

/*********************************************************************************************************
** Function name: TASK4
** Descriptions:  无
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK4(void *pdata)  
{
	pdata = pdata;

    while(1)
    {
	    OSTimeDly(10);    
    }
}

/*********************************************************************************************************
** Function name: TASK5
** Descriptions:  无
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK5(void *pdata)  
{   
	pdata = pdata;

	while (1)
    {
    	OSTimeDly(10);
    }
}


/*********************************************************************************************************
** Function name: TASK6
** Descriptions:  无
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK6(void *pdata)  
{   
	pdata = pdata;
	
	while (1)
    {	
		OSTimeDly(OS_TICKS_PER_SEC); 
    }    
}

/*********************************************************************************************************
** Function name: TASK7
** Descriptions:  GPIO驱动DEMO,翻转GPIO,闪烁LED
** Input:         无
** Output:        无 
********************************************************************************************************/
void TASK7(void *pdata)   
{
	pdata = pdata;
	
	while (1)
    {	
        LED_Set();
		OSTimeDly(OS_TICKS_PER_SEC);  
        LED_Clr();
		OSTimeDly(OS_TICKS_PER_SEC); 
    }   
}

/********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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