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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? esam.c

?? DEC——6713開發(fā)板ESAM加密源代碼
?? C
字號:
/*********************************************************************************
* ESAM.C	v1.00	     							                            *
* Copyright	2003 by SEED Electronic Technology Ltd.
* All rights reserved. Property of SEED Electronic Technology Ltd.			                *
* Designed by:	Hongshuai.Li								                                *
*********************************************************************************/
/********************************************************************************\
\*	The routine include all applied function in DEC6713_ESAM project. *\
\********************************************************************************/

#include <csl.h>
#include <csl_irq.h>
#include <csl_timer.h>
#include <csl_gpio.h>
#include <stdio.h>
#include <std.h>
#include <DEC6713.h>
#include <ESAM.h>

//#define TIMER_CNT  100  		/* Maximum count value */
static TIMER_Handle hTimer1;
static Uint32 TimerEventId;
static GPIO_Handle hGpio;
static int cnt = 0; 
Uint32 EsamCnt = 0; 
Bool DataReady = FALSE;
Bool NewData = FALSE;
Bool FirstBit = FALSE;
//void TimerEventHandler(void);
Uint8 INTCNT = 0;
/********************************************************************************/
static Uint32 TimerControl = TIMER_CTL_RMK( /* Timer control register (CTL)*/
  	TIMER_CTL_INVINP_NO, /* TINP inverter control(INVINP). Only affects operation
					      if CLKSRC =0.
                           TIMER_CTL_INVINP_NO  - Uninverted TINP drives timer
                           TIMER_CTL_INVINP_YES - inverted TINP drives timer */
  
  	TIMER_CTL_CLKSRC_CPUOVR4,/* Timer input clock source (CLKSRC)
						   TIMER_CTL_CLKSRC_CPUOVR4 - CPU clock /4 = 112.5MHz.         */
						   	
  	TIMER_CTL_CP_CLOCK, /* Clock/pulse mode(CP)
					       TIMER_CTL_CP_PULSE - Pulse mode.TSTAT is active one 
						        CPU clock after the timer reaches the timer
								period.PWID determines when it goes inactive.*/
					    
  	TIMER_CTL_HLD_YES, /* Hold(HLD). Counter may be read or written regardless of 
					    HLD value.
						   TIMER_CTL_HLD_YES - Counter is disabled and held in
						        current value.
						   TIMER_CTL_HLD_NO - COunter is allowed to count.   */
						   
  	TIMER_CTL_GO_NO, /* Go bit(GO). Resets and starts the timer counter.
				           TIMER_CTL_GO_NO - No effects on the timer.
						   TIMER_CTL_GO_YES - if HLD =1, the counter register
						        is zeroed and begins counting on next clock. */
  	TIMER_CTL_PWID_TWO, /* Pulse width(PWID). Only used in pulse mode.
					       TIMER_CTL_PWID_ONE - TSTAT goes inactive one timer 
						        input clock cycle after the timer counter value
								equals the timer period value.
                           TIMER_CTL_PWID_TWO -  TSTAT goes inactive one timer 
						        input clock cycle after the timer counter value
								equals the timer period value.               */

  	TIMER_CTL_DATOUT_0, /* Data output (DATOUT).
					       TIMER_CTL_DATOUT_0 - If FUNC  =0,the DATOUT is
						        driven on TOUT. 
                           TIMER_CTL_DATOUT_1 - If FUNC =1,The DATOUT is driven
						        on TOUT after inversion by INVOUT.           */

  	TIMER_CTL_INVOUT_NO, /* TOUT inverter control (INVOUT) 
					       TIMER_CTL_INVOUT_NO - Uninverted TSTAT drives TOUT
						   TIMER_CTL_INVOUT_YES - Inverted TSTAT drives TOUT.*/
  	TIMER_CTL_FUNC_TOUT /* Function of TOUT pin(FUNC).
					       TIMER_CTL_FUNC_GPIO - TOU is a general purpose 
						        output pin
                           TIMER_CTL_FUNC_TOUT - TOUT is a timer output pin  */
					        
); 

GPIO_Config MyGPIOConfig = {
	0x00000030,			// gpgc  -logic mode
	0x00008000,			// gpen  - Enable GP15 as interrupt input.
	0x00007fff,			// gpdir - Set gp15 as input. 	
	0x0000ffff,			// gpval - Default values are 0.
	0x00000000,			// gphm  - gp15hm=0.
	0x00008000,			// gplm	 - gp15lm = 1.
	0x00008000			// gppol - gp15pol = 1.
}; 

/********************************************************************************/
/********************************************************************************\
\* DEC6713_EsamOpen()		-Open esam model. *\
\* Parameters:									*\
\* Return:										*\
\********************************************************************************/
void DEC6713_EsamOpen()
{ 
	//Open TIMER1 device, and reset it to power-on default state
	hTimer1 = TIMER_open(TIMER_DEV1, TIMER_OPEN_RESET);
	//Obtain the event ID for the timer device
	TimerEventId = TIMER_getEventId(hTimer1);
	//Map TIMER events to physical interrupt number
	IRQ_map(TimerEventId, 14);
	
	//Reset the timer events
	IRQ_reset(TimerEventId);
    
	//---------Configure the timer devices---------	
	//Start count value at zero
	TIMER_configArgs(hTimer1,
    TimerControl, // use predefined control value  
    0x00000B72,   // set period = (1/9600)/2                 
    0x00000000    // start count value at zero     
  	);

	
	//Enable the timer events(events are disabled while resetting)
	IRQ_enable(TimerEventId);
	
	
	// Enable GPIO interrupt
	DEC6713_EsamPortDirection(Output);
	
	hGpio = GPIO_open(GPIO_DEV0,GPIO_OPEN_RESET);
	GPIO_reset(hGpio);
	GPIO_pinEnable(hGpio,GPIO_PIN15);
	GPIO_pinDirection(hGpio,GPIO_PIN15,GPIO_OUTPUT);
	
	GPIO_pinWrite(hGpio,GPIO_PIN15,1);
	
	GPIO_config(hGpio,&MyGPIOConfig);
	IRQ_map(IRQ_EVT_GPINT0,13);
	IRQ_reset(IRQ_EVT_GPINT0);
	IRQ_enable(IRQ_EVT_GPINT0);
	IRQ_globalEnable();

}

/********************************************************************************\
\* DEC6713_EsamPortDirection()				*\
\* Parameters:	In. Set data port as input.	*\
\*				Out.Set data Port as input. *\
\* Return:									*\
\********************************************************************************/
void DEC6713_EsamPortDirection(DataDirection Direction)
{
	Uint8 RegNum;
	// Set ESAM data port direction.
	RegNum = DEC6713_CTL_REG; 
	if(Direction == 0)
	{
		DEC6713_cpld_rset(RegNum,0x90);	
	}
	else
	{
		DEC6713_cpld_rset(RegNum,0x80);	
	}
}

/********************************************************************************\
\* DEC6713_EsamReset()		-Esam reset function. 		*\
\* Parameters:											*\
\* Return:												*\
\********************************************************************************/
void DEC6713_EsamReset()
{
	Uint8 RegNum;
	RegNum = DEC6713_CTL_REG;
//	DEC6713_cpld_rset(RegNum,0x98);
//	DEC6713_wait(0x377c8);
	DEC6713_cpld_rset(RegNum,0x90);
	// Delay about 1ms.
	DEC6713_wait(0x377c8);
	DEC6713_cpld_rset(RegNum,0x98);
}

/********************************************************************************\
\* DEC6713_EsamRead()						*\
\* Parameters:	Dst. Receive data buffer.
				Length. Read data length. 	*\
\* Return:									*\
\********************************************************************************/
Uint32 DEC6713_EsamRead(Uint32 Dst,Uint32 Length)
{
	Uint32 i;
	Uint32 n=0;
	Uint8 EsamDataBit = 0;
	Uint8 EsamData = 0;
	Uint8 EsamCheck = 0;
	Uint8 EsamCounter = 0;
	
	Uint8 *pdst;
	Uint8 *plength;
	
	pdst = (Uint8 *)Dst;
	plength = (Uint8 *)Length;
	*plength = 0;
	// Open interrupt GPIO15.

	IRQ_enable(IRQ_EVT_GPINT0);



	while(1)
	{	
		if(NewData==FALSE)
		{
			n++;
			if(n ==1000)
			{
				n = 0;
				EsamCnt++;
			}
			if(EsamCnt == 300)
			{
				EsamCnt = 0;
				if(EsamCounter == 0)
				{
					return 1;
				}
				else
				{
					*plength = EsamCounter;
					return 2;			
				}
			}
		}
		// ESAM output data consist of 9 bits. The first 8 bits are data, the last
		// is even parity bit.
		else
		{
			NewData = FALSE;
			EsamCnt = 0;
			// Configure GPIO15 as data receiving port.
			IRQ_disable(IRQ_EVT_GPINT0);
			GPIO_pinDirection(hGpio,GPIO_PIN15,GPIO_INPUT);
			for(i=0;i<8;i++)
			{
				while(!DataReady);
				DataReady = FALSE;
				EsamDataBit = GPIO_pinRead(hGpio,GPIO_PIN15);
				EsamCheck = EsamCheck + (EsamDataBit & 0x1);
				EsamData = EsamData + ((EsamDataBit&0x01)<<i);
			}	
			// Read parity bit.
			while(!DataReady);
			DataReady = FALSE;
			EsamDataBit = GPIO_pinRead(hGpio,GPIO_PIN15);
			EsamCheck = EsamCheck + (EsamDataBit&0x01);

			if(EsamCheck & 0x01)
			{
				return 0;
			}
		
			*pdst++ = EsamData;
			EsamCounter++;
			EsamDataBit = 0;
	 		EsamData = 0;
	 		EsamCheck = 0;
	 		TIMER_pause(hTimer1);
	
		GPIO_close(hGpio);		
		hGpio = GPIO_open(GPIO_DEV0,GPIO_OPEN_RESET);
		GPIO_reset(hGpio);
		GPIO_pinEnable(hGpio,GPIO_PIN15);
		GPIO_config(hGpio,&MyGPIOConfig);
		IRQ_map(IRQ_EVT_GPINT0,13);
		IRQ_reset(IRQ_EVT_GPINT0);
		IRQ_enable(IRQ_EVT_GPINT0);
		IRQ_globalEnable();	
		}	
	}
}
/********************************************************************************\
\* Timer interrupt handle routine.*\
\********************************************************************************/
interrupt void c_int14(void)
{
	if(FirstBit == TRUE)
	{
		cnt++;
		if(cnt ==3)
		{
			DataReady = TRUE;
			FirstBit = FALSE;
			cnt= 0;
		}
		
	}
	else
	{
		cnt++;
		if(cnt == 2)
		{
			cnt = 0;
			DataReady = TRUE;
		}  
	}
	return;
} 

/********************************************************************************\
\* GPIO15 interrupt handle routine.*\
\********************************************************************************/
interrupt void c_int13(void)
{
	IRQ_disable(IRQ_EVT_GPINT0);
	NewData = TRUE;
	FirstBit = TRUE;
	IRQ_reset(TimerEventId);
	//Enable the timer events(events are disabled while resetting)
	IRQ_enable(TimerEventId);
	
	TIMER_configArgs(hTimer1,
    TimerControl, // use predefined control value  
    0x000005B9,   // set period = (1/9600)/2                 
    0x00000000    // start count value at zero     
  	);
	//Start the timers
	cnt = 0;
	TIMER_start(hTimer1);
	INTCNT++;
	return;
}    
   
/********************************************************************************\
\* End of ESAM.C *\
\********************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合色中文字幕| 制服丝袜国产精品| 欧美经典三级视频一区二区三区| 首页国产欧美久久| 制服.丝袜.亚洲.中文.综合| 五月综合激情婷婷六月色窝| 欧美高清视频一二三区 | 懂色一区二区三区免费观看| 国产亚洲精品资源在线26u| 国产一区二区精品久久91| 久久久亚洲高清| 成人国产精品免费| 一区二区三区在线视频免费观看| 欧美在线你懂的| 天天综合色天天| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美一区二区成人6969| 毛片av一区二区| 国产色婷婷亚洲99精品小说| aaa欧美大片| 午夜视频在线观看一区| 欧美一区二区免费| 国产精品123| 亚洲精品乱码久久久久久黑人 | 国产精品自拍一区| 国产精品二区一区二区aⅴ污介绍| 色一情一乱一乱一91av| 五月婷婷久久丁香| 国产农村妇女毛片精品久久麻豆 | 午夜精品久久久久久久99水蜜桃 | 欧美一级生活片| 狠狠色丁香久久婷婷综合_中 | 婷婷开心激情综合| 久久九九久久九九| 日本久久电影网| 狠狠色丁香久久婷婷综| 亚洲免费观看高清在线观看| 日韩一区二区三区四区五区六区| 高清不卡一区二区| 日韩高清不卡在线| 国产精品入口麻豆九色| 777色狠狠一区二区三区| 国产精品18久久久| 青青草国产精品亚洲专区无| 亚洲欧美综合网| 精品盗摄一区二区三区| 91成人在线免费观看| 国产酒店精品激情| 午夜av电影一区| 综合久久一区二区三区| 精品成人私密视频| 欧美精品视频www在线观看| 成人黄色一级视频| 国内精品免费**视频| 亚洲二区视频在线| 亚洲欧洲精品一区二区精品久久久| 9191久久久久久久久久久| 91视频在线看| 粉嫩av亚洲一区二区图片| 麻豆专区一区二区三区四区五区| 一区二区三区精品| 国产精品传媒视频| 国产亚洲一本大道中文在线| 日韩欧美在线网站| 4438x成人网最大色成网站| 日本久久一区二区三区| 99久久99久久精品国产片果冻 | 99精品久久99久久久久| 欧美激情一区二区三区四区| 91免费国产在线观看| 欧美日韩大陆在线| 91在线视频在线| 国产不卡视频在线播放| 久久精品国产免费| 日本va欧美va欧美va精品| 亚洲国产cao| 亚洲一卡二卡三卡四卡无卡久久 | 色狠狠综合天天综合综合| 国产成人精品1024| 国产精品99久久久久久久vr| 久久国产三级精品| 久久99国产乱子伦精品免费| 麻豆高清免费国产一区| 日韩av在线播放中文字幕| 三级在线观看一区二区| 亚洲va韩国va欧美va精品| 成人av在线网站| 亚洲同性gay激情无套| 欧美精品v日韩精品v韩国精品v| 欧美一级黄色录像| 日韩三级视频中文字幕| 欧美tickling网站挠脚心| 欧美成人国产一区二区| 26uuu色噜噜精品一区二区| 精品成人佐山爱一区二区| 欧美精品一区二区三区高清aⅴ| 亚洲精品在线观| 国产性色一区二区| 国产精品福利电影一区二区三区四区 | 亚洲免费观看在线视频| 一级特黄大欧美久久久| 日韩精品色哟哟| 精品综合免费视频观看| 国产精品456露脸| 成人伦理片在线| 91国内精品野花午夜精品| 欧美色精品在线视频| 欧美一级久久久| 久久理论电影网| 亚洲欧洲日产国码二区| 五月婷婷另类国产| 激情综合色播激情啊| 成人app在线| 欧美少妇一区二区| 精品sm在线观看| 综合自拍亚洲综合图不卡区| 午夜精品久久久久久不卡8050 | 久草这里只有精品视频| 国产不卡视频一区| 欧美日韩午夜影院| 久久影院视频免费| 一个色综合av| 激情图片小说一区| 色婷婷久久一区二区三区麻豆| 欧美猛男gaygay网站| 国产午夜精品久久久久久免费视| 亚洲美女在线国产| 黄一区二区三区| 久久综合九色欧美综合狠狠| 亚洲少妇屁股交4| 美女www一区二区| 色综合天天性综合| 精品久久久网站| 亚洲自拍偷拍欧美| 国产精品1024| 日韩欧美资源站| 一区二区三区中文字幕精品精品| 紧缚奴在线一区二区三区| 在线观看日韩电影| 国产欧美日韩三区| 日本亚洲免费观看| 在线免费观看日韩欧美| 国产丝袜欧美中文另类| 日一区二区三区| 91社区在线播放| 久久久不卡网国产精品一区| 日韩成人一区二区| 91行情网站电视在线观看高清版| 国产日韩欧美综合一区| 手机精品视频在线观看| 日本韩国欧美一区二区三区| 久久精品一区蜜桃臀影院| 日韩激情视频网站| 欧美日韩一区三区四区| 亚洲色图色小说| 成人性视频免费网站| 精品久久久久久久久久久久久久久久久| 亚洲一区二区在线观看视频| www.综合网.com| 中文成人av在线| 国产精品一区二区果冻传媒| 欧美sm极限捆绑bd| 蜜臀久久久99精品久久久久久| 欧美日韩在线精品一区二区三区激情| 国产精品久久久久婷婷| 成人一区二区三区视频在线观看| 精品国产乱码久久| 久久国内精品视频| 精品日韩欧美在线| 久久精品噜噜噜成人av农村| 欧美一区二区三区四区五区| 日韩精品一二三区| 91麻豆精品国产91久久久使用方法| 亚洲第一久久影院| 欧美日本一区二区三区| 日韩在线观看一区二区| 337p亚洲精品色噜噜| 蜜桃视频在线一区| 日韩精品一区在线| 国产在线播放一区二区三区| 久久亚洲综合色| 国产高清一区日本| 国产精品欧美精品| 色天天综合色天天久久| 亚洲综合久久久久| 欧美二区在线观看| 九九在线精品视频| 欧美激情综合五月色丁香小说| 成人动漫一区二区在线| 亚洲人吸女人奶水| 欧美怡红院视频| 免费高清成人在线| 久久人人97超碰com| 成人黄色网址在线观看| 亚洲人成精品久久久久| 欧美日本一道本| 精品一区二区三区免费观看| 欧美高清在线视频| 色婷婷av一区二区三区之一色屋| 亚洲成av人片一区二区梦乃|