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

📄 main.c

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 C
字号:
//--------------------------------------------------------------------------------- 
//
//      Copyright (C) SEIKO EPSON CORP. 2004 
//
//      GROUP			: SEE LSI
//      FILE                    : main.c
//      MODULE                  : 
//      Function description    : 
//      Revision history        :                                                                                               
//                                Date            userName         Description
//                                2004/05/24      David.ji	       start
//
//      Notes                   : 
//
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
// Include files (#include)
//---------------------------------------------------------------------------------
#include "ros33.h"           // ROS header
#include "sysGUI.h"
#include "comFS.h"
#include "usbfw_if.h"
#include "main.h"

//---------------------------------------------------------------------------------
// static variables
//---------------------------------------------------------------------------------
static UB MainTsk_Stack[STACK_SIZE]; 
static UB IdleTsk_Stack[STACK_SIZE]; 

//---------------------------------------------------------------------------------
// Function prototypes
//---------------------------------------------------------------------------------
INT main();

extern void fnGUI_Main();
extern void fnGuiTM_Init();

extern char* gSpkParams; 
extern T_FS_FILECTL stFileCtl;
extern unsigned char ubPlayerStatus;
//---------------------------------------------------------------------------------
//  Function name 			: idle_task	
// 	Function description	:
//		 
//      
//      Return value 		:void 	
//
//	Global variable 	:void	
//---------------------------------------------------------------------------------
T_MSG	IdleMsg;
void idle_task()
{
	T_MSG_DATA	MsgData;
   	
	MsgData.taskId  = ID_Tsk_Idle;
   	
   	do
	{
		asm("pushn %r0
    		 ld.w  %r0, %psr
    		 xand  %r0, 0xff
    		 xoor  %r0, 0x410
    		 ld.w  %psr, %r0
    		 popn  %r0"
		);
			
		if( ubPlayerStatus == PY_PLAY)
		{
			if (!SpkIsRunning(gSpkParams))
			{
				*(volatile unsigned char*)0x402dd |= 0x04;
				free(stFileCtl.pFileData);
				ubPlayerStatus = PY_IDLE;
			}
		}
		
		asm("pushn %r0
    		 ld.w  %r0, %psr
    		 xand  %r0, 0xff
    		 xoor  %r0, 0x10
    		 ld.w  %psr, %r0
    		 popn  %r0"
		);
		
		if(g_UsbIFReq.ubReqFlg == USBFW_FLAG_ON)
		{
			if (g_UsbIFReq.ubReqCmd == USBFW_CMD_ATTACH)
			{
				MsgData.command = USB_ATTACH;
        		memcpy((UB*)IdleMsg.msgcont,(UB*)&MsgData,10);
				IdleMsg.pNxt = NULL;
        		fsnd_msg(ID_MBX_GuiMain, &IdleMsg);
        	}
        	else
        		if(g_UsbIFReq.ubReqCmd == USBFW_CMD_DETACH)
        		{
					MsgData.command = USB_DETACH;
    	    		memcpy((UB*)IdleMsg.msgcont,(UB*)&MsgData,10);
					IdleMsg.pNxt = NULL;
        			fsnd_msg(ID_MBX_GuiMain, &IdleMsg);
        		}
		}
	}
	while(1);
}

//---------------------------------------------------------------------------------
//  	Function name 		:main	
// 	Function description	:test all the function of GPC33_SEE	
//		 
//      Parameters
//         Input  		:void  
//         Output 		:void
//         I/O    		:void
//      
//      Return value 		:void 	
//
//	Global variable 	:void	
//---------------------------------------------------------------------------------
INT main(){

    sys_ini();
   	
   	//start gui timer
   	fnGuiTM_Init();
   	
    // create task
    vcre_tsk(ID_Tsk_GuiMain, fnGUI_Main, 1, (UW)&(MainTsk_Stack[STACK_SIZE]));
	vcre_tsk(ID_Tsk_Idle, 	 idle_task,  8, (UW)&(IdleTsk_Stack[STACK_SIZE]));
    /* Start task */ 
    sta_tsk(ID_Tsk_GuiMain, 0);
    sta_tsk(ID_Tsk_Idle, 0);

    /*start system*/
    sys_sta();
    return 1;
}

//********************************************************************
//  Send Message to Mailbox and set the flag GUI_EVENTID (1)
//  [Parameters]
//      ID      mbxid   MailboxID
//      T_MSG   *pk_msg Start Address of Message Packet
//  [Return Parameters]
//      ER      ercd    ErrorCode
//********************************************************************
ER fsnd_msg(ID mbxid, T_MSG*  pk_msg)
{
	int er;

	er = snd_msg(mbxid, pk_msg);
	if( er==  E_OK)
		set_flg(GUI_EVENTID, 0x1000);

	return er;
}

⌨️ 快捷键说明

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