📄 main.c
字号:
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 + -