📄 main.c
字号:
//////////////////////////////////////////////////////////////////////////
// Copyright (C) 2004, Eyoka @ Microunit
// All Rights Reserved
//________________________________________________________________________
//
// FILENAME: Encoder.c
//________________________________________________________________________
//
// REVISE HISTORY
//////////////////////////////////////////////////////////////////////////
#include <stdio.h>
//#include "imgcmc.h"
//#include "jpg.h"
#include "dspsys.h"
#include "armdsp.h"
//#include "filter.h"
void TaskProc(void);
volatile BOOL g_bBusy = FALSE;
volatile BOOL g_bStop = FALSE;
volatile WORD g_Task = TASK_IDLE;
volatile WORD g_nFrames = 0;
char g_strFileName[20];
#define RST_LVL_LO REG(0x003802)
void main()
{
short come_on = 1;
g_bBusy = FALSE;
g_bStop = FALSE;
g_Task = TASK_IDLE;
SYS_Init();
RST_LVL_LO |= 0x0004;
// JPG_Init(320, 240, 80, YUV422);
DSP_READY = 1;
while(!ARM_READY)
{
;
}
while(come_on)
{
TaskProc();
}
}
// enumerate and process tasks
void TaskProc(void)
{
DWORD sizeJPG;
WORD tmp_l;
WORD tmp_u;
DWORD tmp;
switch(g_Task)
{
case TASK_IDLE:
g_bBusy = FALSE;
INT_Enable(INT_EVT_MAILBOX1);
Delay(1000);
break;
case TASK_CONVERT:
g_bBusy = TRUE;
// puts("TASK_CONVERT");
tmp_l = ADDR1_L;
tmp_u = ADDR1_U;
tmp = tmp_l | ((DWORD)tmp_u << 16);
IMG_YUV422_RGB565(tmp, 0x00D00000);
JPG_STAT = 0;
g_Task = TASK_IDLE;
break;
case TASK_FILTER:
g_bBusy = TRUE;
// puts("TASK_FILTER");
// Delay(2000000);
IMG_Filter(0x00D00000, 0x00D80000);
JPG_STAT = 0;
g_Task = TASK_IDLE;
break;
case TASK_JPG_ENCODE:
g_bBusy = TRUE;
g_nFrames++;
JPG_STAT = 100;
puts("TASK_JPG_ENCODE");
// sizeJPG = JPG_Encode(JPG_SRC, JPG_DST);
// JPG_SIZE = sizeJPG;
// sprintf(g_strFileName, "QVGA%02d.jpg", g_nFrames);
// EMU_WriteFile(g_strFileName, (WORD*)(JPG_DST/2), sizeJPG/2);
JPG_STAT = 0;
g_Task = TASK_IDLE;
break;
case TASK_JPG_RESET:
g_bBusy = TRUE;
puts("DSP Task: TASK_JPG_RESET");
//@@@@@@@@@@@@@@@@@@
// TO DO: call JPG_Init()
// MBX_Write1(MBX1DATA_DONE, MBX1CMD_JPG_RESET);
//@@@@@@@@@@@@@@@@@@
g_Task = TASK_IDLE;
break;
case TASK_JPG_UPDATE_SIZE:
g_bBusy = TRUE;
puts("DSP Task: TASK_JPG_UPDATE_SIZE");
//@@@@@@@@@@@@@@@@@@
// TO DO: call JPG_SetSize()
// MBX_Write1(MBX1DATA_DONE, MBX1CMD_JPG_UPDATE_SIZE);
//@@@@@@@@@@@@@@@@@@
g_Task = TASK_IDLE;
break;
case TASK_JPG_UPDATE_QUALITY:
g_bBusy = TRUE;
puts("DSP Task: TASK_JPG_UPDATE_QUALITY");
//@@@@@@@@@@@@@@@@@@
// TO DO: call JPG_SetQuality()
// MBX_Write1(MBX1DATA_DONE, MBX1CMD_JPG_UPDATE_QUALITY);
//@@@@@@@@@@@@@@@@@@
g_Task = TASK_IDLE;
break;
case TASK_JPG_UPDATE_SRCMODE:
g_bBusy = TRUE;
puts("DSP Task: TASK_JPG_UPDATE_SRCMODE");
//@@@@@@@@@@@@@@@@@@
// TO DO: call JPG_SetInColor()
// MBX_Write1(MBX1DATA_DONE, MBX1CMD_JPG_UPDATE_SRCMODE);
//@@@@@@@@@@@@@@@@@@
g_Task = TASK_IDLE;
break;
default:
puts("error task");
MBX_Write1(0, MBX1CMD_ERROR);
return;
}
}
// the end
//////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -