亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? bu1566dsp芯片用來處理ov7660或其他30萬攝像模組的圖像預覽.圖像拍照(jpeg壓縮)
?? C
字號:
/****************************************Copyright (c)**************************************************
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2007-04-16
** Last Version:		1.0
** Descriptions:		The main() function example template

********************************************************************************************************/
#include "config.h"
#include "stdlib.h"
#include "BUxx_Sample.h"
#include "BUxx_aDSC.h"
#include "BUxx_Main.h"
#include  "main.h"
#include "I2C.h"
#include "zlg7290.h"
#include  "target.h"
#include  "UART0.h"
#include  "lcddrive.h"

#include  "UART0.h"
#include  "hpi32.h"
#include  "fat32.h"


#define   KEY1       1<<20	         // 定義按鍵
#define   HcRECT   (1<<10)           // FOR RESET
#define   UART_BPS  115200           // 定義通訊波特率
#define   ZLG7290 0x70               // 定義器件地址
#define	BEEP	(1 << 7)            /* P0.07為蜂鳴器 */
#define   KEY_INT  1<<30           // 定義p0.30為 按鍵中斷

#define   LEDCON   0xf0000000
char      SendBuf[16];     

UINT32 jpeg_size = JPEG_BUFFER;              //定義最大JPEG尺寸_    
//UINT16 * start_add = (UINT16 *) 0x80400000;  //定義放置DATA的起始地址
static UINT16  start_add[1024*100];

#define ARMMJPEG_BUFFER	(256*1024)
UINT32 ARMmjsize = ARMMJPEG_BUFFER;


#define	TaskStkLengh	512			//Define the Task0 stack length 定義用戶任務0的堆棧長度 
#define TASK_STK_SIZE  128

#define CMD_SD_INIT		   0x00				/* 卡初始化卡命令  */
#define CMD_SD_READ    	   0x01				/* 卡讀命令        */
#define CMD_SD_WRITE   	   0x02				/* 卡寫命令        */
#define CMD_SD_ERASE	   0x03				/* 卡擦除命令      */

#define CMD_DATA_TRANS	   0x04				/* 將sd_buf中的數據發送到PC機 */
#define CMD_DATA_RECV	   0x05				/* 接收來自串口的數據,并放入sd_buf中 */

/* SD/MMC卡讀寫緩沖區,比SDMMC卡一個塊大8字節 */  
uint8 sd_buf[520];

OS_STK  TaskStartStk[TASK_STK_SIZE]; 
OS_STK	TaskStk0[TaskStkLengh];		//Define the Task0 stack 定義用戶任務0的堆棧
OS_STK	TaskStk1[TaskStkLengh];		//Define the Task1 stack 定義用戶任務1的堆棧
OS_STK	TaskStk2[TaskStkLengh];		//Define the Task2 stack 定

OS_STK   TaskStk[TASK_STK_SIZE];			/* 任務堆棧 */


OS_STK	Task0Stk [TaskStkLengh];    // 定義用戶任務0的堆棧
OS_STK	Task1Stk [TaskStkLengh];    // 定義用戶任務1的堆棧

OS_STK   TaskCardStk[TASK_STK_SIZE];		/* 卡操作任務堆棧 */
OS_EVENT *Uart0ReviceMbox;					/* 串口接收數據郵箱 */

void 	Task0(void *pdata);			// 任務0

extern void C_Entry(void);
extern void  __irq aDSC_int_disp(void);
extern void  UART0SendStr(char *str);

/****************************************************************************
* 名    稱:main()
****************************************************************************/

int main(void)
{  
    // UINT8 Key = 0;
     //UINT8 init_once = 0;
     char *start = "WELCOME";                     //write Frame jpeg    
     //static UINT16 start_add[100*1024]; 
   
     /************************ 初始化SD card  *************************/ 
     UINT8 *pRec;
     UINT8 err;
     UINT32 bufaddr,blockaddr,blocknum;
     uint16 temp; 
	
   //  pdata = pdata; 
     /************************ 初始化中斷  *************************/
     PINSEL0 = 0x00000000;                         // 設置管腳連接GPIO 
     PINSEL1 = 0x00000000;

   /************************ 初始化DSP  *************************/ 
       Reset_BU1566();                 //Reset BU1566

     // INIT_BU1566();                  //BU1566 中斷設定   
                                 /* 目標板初始化 */
   /******************* 初始化LCD and CAM  初始化串口************/        
       GUI_Initialize();                   // 初始化ARM 上的 LCD 
     
       C_Entry();                             // 初始化屏,刷BU1566屏紅藍色  
      
       sStartPreview();      
    /*******************  初始化串口************/
       UART0Init(115200);                 // 初始化UART0 為打印日期用的
       Time0Init();				     // 初始化定時器0 為測試串口用

  /******************* CMD_SD_INIT  初始化************/	      
    temp = SD_Initialize();				/* 初始化SD卡 */
//	EnumSdDev(); //讀取sd卡系統信息   
//	CreateFile(0,"abcdef.jpg",0);//創建文件,文件名為8位

    sJPEGCEncode((UINT16 *) start_add, 19);
   
//	WriteFile(len,ubuf);//寫數據,len=數據長度,ubuf=數據	

     sJPEGDecode((UINT16 *) start_add,&jpeg_size);	

			
}

 
/****************************************************************************
* 名    稱:Reset_BU1566()
* 功    能:reset BU1566
* 入口參數:無
* 出口參數:無PINSEL0 &=~((0x3<<20)|(0xA<<0));
****************************************************************************/ 
void Reset_BU1566(void)
{
    UINT8 i;
    PINSEL0 &=~(0x3<<20);                   // 設置管腳po.10為連接GPIO輸出
    IO0DIR |= HcRECT;	                    // 設置 P0.10為I/O為輸出

   //直接寫以下設定P0.10為輸出也可
    //  IO0PIN = HcRECT;
  
     IO0SET = HcRECT;				        // BEEPCON = 1
	 for(i =0; i < 40; i ++);
     IO0CLR = HcRECT;				        // BEEPCON = 0
	 for(i =0; i < 40; i ++);	
     IO0SET = HcRECT;	
	 for(i =0; i < 40; i ++);               // BEEPCON = 1

} 

/****************************************************************************
* 名    稱:INIT_BU1566()
* 功    能:BU1566的中斷。 
* 入口參數:無
* 出口參數:無
****************************************************************************/
void INIT_BU1566(void)
{
    //p0.16 INT pin
   // PINSEL0 &=~(0xA<<0);                 // 設置管腳連接GPIO ,設置I/O連接到UART0 
   // PINSEL0 |= 0x00000005;                 // 設置管腳連接GPIO ,設置I/O連接到UART0     
   
    PINSEL1 |= 0x00000001;                 // 設置管腳連接,P0.16設置為EINT0
    EXTMODE = 0x0f;		                   // 設置EINT0中斷為邊沿觸發模式 
    EXTPOLAR = 0x00;                       //下降沿有或低電平

    //為直接設定通道數,如spi為10=A
    VICVectCntl7 = (0x20|0x0E);            // 設置EINT0分配到IRQslot1
    
    VICVectAddr1 = (int) aDSC_int_disp;	   // 設置中斷服務程序地 址
    
    VICIntEnable = 1<<14;		    	   // 使能EINT0中斷,EINT0在Bit14上
 //   VICIntEnable = 0x00004000;           //使能EINT0中斷,EINT0在Bit14
 }

/****************************************************************************
* 名    稱:Time0Init()
* 功    能:初始化定時器0,定時時間為1S。 
* 入口參數:無
* 出口參數:無
****************************************************************************/
void TimeSendLCD(void)	
{
  
    uint32 times, hour, min, sec;
    char szTime[10];

    
    while( 0==(ILR&0x01) );       	// 等待RTC增量中斷標志
    ILR = 0x01;				    	// 清除中斷標志

    times = CTIME0;
    
    hour = 0x1F & (times>>16);
    min  = 0x3F & (times>>8);
    sec  = 0x3F & (times);
    szTime[0] = '0' + (hour/10); // '0' + 1 = '1'
    szTime[1] = '0' + (hour%10);
    szTime[2] = ':';
    szTime[3] = '0' + (min/10);
    szTime[4] = '0' + (min%10);
    szTime[5] = ':';
    szTime[6] = '0' + (sec/10);
    szTime[7] = '0' + (sec%10);
    szTime[8] = 0;	//	end flag of string
    
    
    SendTimeRtc();            // 讀取時鐘值,并向UART0發送
    
    aDRT_clear(0, 0, M_LCD_WSIZE, M_LCD_HSIZE, 0xf800 );	
    aDRT_write_string(szTime,2, 20, 40);
            
 }


/****************************************************************************
* 名    稱:Time0Init()
* 功    能:初始化定時器0,定時時間為1S。 
* 入口參數:無
* 出口參數:無
****************************************************************************/
void  Time0Init(void)
{   /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
	   Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
	*/
    T0PR = 99;			    					// 設置定時器0分頻為100分頻,得110592Hz
	T0MCR = 0x03;		   						// 匹配通道0匹配中斷并復位T0TC
	T0MR0 = 552960;	    						// 比較值(1S定時值)
	T0TCR = 0x03;		   						// 啟動并復位T0TC
	T0TCR = 0x01; 
}


/****************************************************************************
* 名    稱:UART0_SendByte()
* 功    能:向串口發送字節數據,并等待發送完畢。
* 入口參數:data		要發送的數據
* 出口參數:無
****************************************************************************/
void  UART0_SendByte(uint8 data)
{  
    U0THR = data;				    	// 發送數據
    
    while( (U0LSR&0x40)==0 );	    	// 等待數據發送完畢
}

/****************************************************************************
* 名    稱:UART0_SendStr()
* 功    能:向串口發送一字符串
* 入口參數:srt		要發送的字符串的指針
* 出口參數:無
****************************************************************************/
void  UART0_SendStr(uint8 const *str)
{  
    while(1)
    {  
        if( *str == '\0' ) break;
        UART0_SendByte(*str++);	    	// 發送數據
    }
}

/****************************************************************************
* 名    稱:Time_INIT()
* 功    能:定時器。 
* 入口參數:無
* 出口參數:無
****************************************************************************/
 void Time_INIT(void)
 {
 
       while( (T0IR&0x01) == 0 );	  // 等待定時時間到
       T0IR = 0x01;
}



/*********************************************************************************************************
** 函數名稱: TaskStart
** 功能描述: μCOS-II的第一個任務,通常由它初始化目標板和建立其它任務
********************************************************************************************************/
        void  TaskCard(void *pdata)
{
    uint8 *pRec;
    uint8 err;
	uint32 bufaddr,blockaddr,blocknum;
	
    pdata = pdata;                                                     /* 避免編譯警告 */

    Uart0ReviceMbox = OSMboxCreate(NULL);                              /* 建立郵箱 */
    if (Uart0ReviceMbox == NULL)
        while (1);

  
    TargetInit();                                                      /* 目標板初始化 */
    for (;;)
    {
        pRec = (uint8 *)OSMboxPend(Uart0ReviceMbox, 0, &err);          /* 接收數據 */
        switch(pRec[0])
    	{
    		case CMD_SD_INIT: pRec[1] = SD_Initialize();			   /* 初始化SD卡 */
    		break; 
    		
    		case CMD_SD_READ:
    			 blockaddr = (pRec[1] << 24) + (pRec[2] << 16) +	   /* 計算塊地址 */
    						 (pRec[3] << 8) + pRec[4];
    			 pRec[1] = SD_ReadBlock(blockaddr, sd_buf);		 	   /* SD卡單塊讀 */ 			
    		break;
    		 	    		
    		case CMD_SD_WRITE:	 
    			 blockaddr = (pRec[1] << 24) + (pRec[2] << 16) + 
    						 (pRec[3] << 8) + pRec[4];
    			 pRec[1] = SD_WriteBlock(blockaddr, sd_buf);		   /* SD 卡單塊寫 */
    		break;
    			
    		case CMD_SD_ERASE:	 
    			 blockaddr = (pRec[1] << 24) + (pRec[2] << 16) + 
    						 (pRec[3] << 8) + pRec[4];				   /* 擦卡起始地址 */
    			 blocknum  = (pRec[5] << 16) + (pRec[6] << 8) +	
    				 		 (pRec[7]);								   /* 塊數 */
    			 pRec[1] = SD_EraseBlock(blockaddr, blocknum);		   /* 擦除操作 */
    		break;
   			
    		case CMD_DATA_RECV:	 
    			 bufaddr = (pRec[1] << 8) + pRec[2];				   /* 計算緩沖區地址 */
    			 memcpy(sd_buf + bufaddr, &pRec[3], 5);				   /* 收到數據放入pRec */
    		break;
    			
    		case CMD_DATA_TRANS: 
    			 bufaddr = (pRec[1] << 8) + pRec[2];				   /* 計算緩沖區地址 */ 
    			 memcpy(&pRec[1], sd_buf + bufaddr, 7);				   /* sd_buf數據放入pRec */
    		break;  							
    	
    		default: break;
    	}
    	
    	UART0Write(pRec, 8);		/* 發送響應幀 */
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合丝袜日本网| 欧美疯狂做受xxxx富婆| 韩国一区二区三区| 日韩激情视频在线观看| 蓝色福利精品导航| 午夜激情综合网| 五月天欧美精品| 日本不卡的三区四区五区| 亚洲bt欧美bt精品777| 一区二区三区精密机械公司| 亚洲天堂福利av| 一区二区免费在线| 亚洲码国产岛国毛片在线| 欧美激情艳妇裸体舞| 国产精品成人免费| 亚洲尤物视频在线| 青青草国产成人av片免费| 日韩av一二三| 激情六月婷婷久久| 粉嫩嫩av羞羞动漫久久久| 97久久超碰国产精品电影| 色天天综合色天天久久| 欧美美女激情18p| 久久综合九色综合97婷婷 | 中文字幕一区视频| 亚洲视频一二三区| 日韩在线一区二区三区| 国产精品夜夜嗨| 色综合久久天天综合网| 欧美人动与zoxxxx乱| 精品sm在线观看| 亚洲黄色片在线观看| 日本sm残虐另类| 不卡的av在线| 欧美精品在线一区二区三区| 国产亚洲va综合人人澡精品 | 欧美日韩亚洲国产综合| 日韩一级完整毛片| 亚洲欧美在线视频观看| 免费一级欧美片在线观看| 99视频在线观看一区三区| 欧美精品777| 国产精品久久免费看| 日本欧美在线观看| 91麻豆国产精品久久| 亚洲精品一区二区三区四区高清| 亚洲三级免费电影| 欧美丝袜丝交足nylons图片| 精品国产乱码久久久久久牛牛| 综合欧美亚洲日本| 国产精品亚洲综合一区在线观看| 欧美美女一区二区在线观看| 日本一二三四高清不卡| 伦理电影国产精品| 欧美午夜在线观看| 亚洲视频在线观看三级| 国产精品一区二区在线观看网站| 欧美精品一级二级三级| 亚洲蜜臀av乱码久久精品| 国产成人午夜电影网| 91麻豆精品国产| 亚洲国产你懂的| 99精品视频在线观看免费| 久久先锋影音av| 蜜臀久久99精品久久久久宅男| 欧美性受xxxx黑人xyx| 中文字幕一区二区在线观看| 国产精品影视在线观看| 日韩欧美一级精品久久| 日韩高清在线一区| 6080日韩午夜伦伦午夜伦| 亚洲伊人色欲综合网| 色婷婷综合视频在线观看| 成人免费视频在线观看| 99久久久无码国产精品| 国产精品久久久久久久久果冻传媒 | 亚洲一区二区成人在线观看| 成人a级免费电影| 欧美激情一区二区三区| caoporen国产精品视频| 国产精品伦一区| 波多野结衣精品在线| 亚洲三级在线免费| 色偷偷久久人人79超碰人人澡| 一区二区三区在线观看动漫| 色8久久人人97超碰香蕉987| 亚洲一区二区三区爽爽爽爽爽| 在线免费观看日韩欧美| 午夜一区二区三区在线观看| 欧美日韩电影一区| 久久精工是国产品牌吗| 久久久一区二区| 99精品视频在线观看| 亚洲精品五月天| 91精品中文字幕一区二区三区| 日本va欧美va精品| 久久人人超碰精品| 97精品久久久久中文字幕| 一区二区三区免费看视频| 欧美电影一区二区| 狠狠色丁香婷综合久久| 国产精品你懂的在线欣赏| 欧洲av一区二区嗯嗯嗯啊| 蜜臀av一区二区在线观看| 一区二区三区在线播| 欧美va天堂va视频va在线| 成人免费av资源| 天天综合日日夜夜精品| 久久你懂得1024| 欧美专区日韩专区| 韩国av一区二区三区| 综合在线观看色| 日韩精品一区二区三区三区免费| 成人午夜电影网站| 亚洲福利一区二区| 国产丝袜欧美中文另类| 欧美日韩精品一区二区在线播放| 国产乱子伦一区二区三区国色天香| 日韩理论片中文av| 欧美成人精品3d动漫h| 日本高清不卡一区| 国产一区激情在线| 午夜久久久久久久久久一区二区| 国产三级精品视频| 欧美福利电影网| 色婷婷av一区二区三区之一色屋| 狠狠色综合色综合网络| 午夜亚洲福利老司机| 国产精品妹子av| 精品国产1区2区3区| 欧美三级视频在线播放| av资源站一区| 丁香婷婷综合激情五月色| 蜜臀av性久久久久av蜜臀妖精 | 蜜桃久久av一区| 一级女性全黄久久生活片免费| 久久香蕉国产线看观看99| 日韩一级免费观看| 欧美日韩不卡在线| 欧美日精品一区视频| 91在线观看地址| av一区二区三区在线| 盗摄精品av一区二区三区| 国产一区在线看| 精品一区二区免费看| 蜜桃视频第一区免费观看| 日日噜噜夜夜狠狠视频欧美人| 一区二区三区成人| 亚洲摸摸操操av| 成人免费在线播放视频| 中文一区在线播放| 中文字幕不卡一区| 欧美国产日韩一二三区| 久久久久久久精| 久久久久久久久久久久久夜| 国产亚洲女人久久久久毛片| 精品国产一二三| 久久精品一区蜜桃臀影院| 国产日韩成人精品| 欧美韩日一区二区三区四区| 国产精品欧美久久久久无广告| 国产精品麻豆久久久| 亚洲视频中文字幕| 一级日本不卡的影视| 五月婷婷色综合| 蜜桃精品视频在线| 国内精品久久久久影院薰衣草| 国产精品自拍一区| www.成人网.com| 日本精品一区二区三区高清| 欧美视频第二页| 日韩一区二区在线播放| 久久久久久97三级| 亚洲伦理在线免费看| 亚洲1区2区3区视频| 欧洲精品视频在线观看| 欧美日韩电影在线| 2024国产精品| 亚洲欧美日韩中文字幕一区二区三区| 一区二区三区中文字幕| 婷婷夜色潮精品综合在线| 精品亚洲国内自在自线福利| k8久久久一区二区三区| 欧美性猛片aaaaaaa做受| 日韩三级视频在线看| 国产精品三级视频| 亚洲国产综合91精品麻豆 | 久久久久久影视| 亚洲另类色综合网站| 美腿丝袜亚洲三区| 99riav久久精品riav| 777色狠狠一区二区三区| 久久综合999| 亚洲一卡二卡三卡四卡五卡| 国产一区在线不卡| 欧美在线|欧美| 亚洲国产精品传媒在线观看| 午夜视频在线观看一区二区| 国产伦精品一区二区三区免费| 色又黄又爽网站www久久|