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

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

?? i2s.c

?? lpc2478開發板基于IAR編譯器移植ucos實驗例程
?? C
字號:
/*****************************************************************************
 *   i2s.c:  I2S C file for NXP LPC23xx/24xx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.19  ver 1.00    Prelimnary version, first Release
 *
*****************************************************************************/
#include "LPC2468.h"                        /* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "i2s.h"
#include "dma.h"

/* treat I2S TX and RX as a constant address, make the code and buffer
easier for both DMA and non-DMA test */
volatile BYTE *I2STXBuffer = (BYTE *)(DMA_SRC);
volatile BYTE *I2SRXBuffer = (BYTE *)(DMA_DST);
volatile DWORD I2SReadLength = 0;
volatile DWORD I2SWriteLength = 0;
volatile DWORD I2SRXDone = 0, I2STXDone = 0;

/*****************************************************************************
** Function name:		I2SHandler
**
** Descriptions:		I2S interrupt handler, only RX interrupt is enabled
**						for simplicity.
**
** parameters:			None
** Returned value:		None
**
*****************************************************************************/
__irq __arm void I2SHandler (void)
{
  DWORD RxCount = 0;

  if ( I2S_STATE & 0x01 )
  {
	RxCount = (I2S_STATE >> 8) & 0xFF;
	if ( (RxCount != RXFIFO_EMPTY) && !I2SRXDone )
	{
	  while ( RxCount > 0 )
	  {
		if ( I2SReadLength == BUFSIZE )
		{
		  /* Stop RX channel */
		  I2S_DAI |= ((0x01 << 3) | (0x01 << 4));
		  I2S_IRQ &= ~(0x01 << 0);	/* Disable RX */	
		  I2SRXDone = 1;
		  break;
		}
		else
		{
		  I2SRXBuffer[I2SReadLength++] = I2S_RX_FIFO;
		}
		RxCount--;
	  }
	}
  }
  VICVectAddr = 0;		/* Acknowledge Interrupt */
}

/*****************************************************************************
** Function name:		I2SStart
**
** Descriptions:		Start I2S DAI and DAO
**
** parameters:			None
** Returned value:		None
**
*****************************************************************************/
void I2SStart( void )
{
  DWORD DAIValue, DAOValue;

  /* Audio output is the master, audio input is the slave, */
  /* 16 bit data, stereo, reset, master mode, not mute. */
  DAOValue = I2S_DAO;
  DAIValue = I2S_DAI;
  I2S_DAO = DAOValue & (~((0x01 << 4)|(0x01 <<3)));
  /* 16 bit data, stereo, reset, slave mode, not mute. */
  I2S_DAI	= DAIValue & (~((0x01 << 4)|(0x01 <<3)));
  return;
}

/*****************************************************************************
** Function name:		I2SStop
**
** Descriptions:		Stop I2S DAI and DAO
**
** parameters:			None
** Returned value:		None
**
*****************************************************************************/
void I2SStop( void )
{
  DWORD DAIValue, DAOValue;

  /* Stop the I2S to start. Audio output is master, audio input is the slave. */
  /* 16 bit data, set STOP and RESET bits to reset the channels */
  DAOValue = I2S_DAO;
  /* Switch to master mode, TX channel, no mute */
  DAOValue &= ~((0x01 << 5)|(0x01 << 15));
  DAIValue = I2S_DAI;
  DAIValue &= ~(0x01 << 15);
  I2S_DAO = (0x01 << 4) | (0x01 << 3) | DAOValue;	/* Master */
  I2S_DAI = (0x01 << 4) | (0x01 << 3) | DAIValue;	/* Slave */
  return;
}

/*****************************************************************************
** Function name:		I2SInit
**
** Descriptions:		Initialize I2S controller
**
** parameters:			None
** Returned value:		true or false, return false if the I2S
**						interrupt handler was not installed correctly
**
*****************************************************************************/
DWORD I2SInit( void )
{
  /*enable I2S in the PCONP register. I2S is disabled on reset*/
  PCONP |= (1 << 27);

  /*connect the I2S sigals to port pins(P0.4-P0.9)*/
  PINSEL0 &= ~0x000FFF00;
  PINSEL0 |= 0x00055500;

  /* For all the test program assuming USB is used, the CCLK is set to
  57.6Mhz while all the PCLK are the same, 1/2 of CCLK = 28.8Mhz. It also
  applys to I2S. To generate 48khz sample rate for 16-bit stereo data
  requires a bit rate of 48,000x16x2=1.536Mhz, the TX and RX clock rate
  register should be 28800000/1536000=18.75=0x13.
	
  Please note, in order to generate accurate TX/RX clock rate for I2S,
  PCLK and CCLK needs to be carefully reconsidered. For this test
  program, the TX is looped back to RX without external I2S device,
  clock rate is not critical in this matter. */
  I2S_TXRATE = 0x13;
  I2S_RXRATE = 0x13;

  I2SStop();
  if ( install_irq( I2S_INT, (void *)I2SHandler, HIGHEST_PRIORITY ) == FALSE )
  {
	return (FALSE);
  }
  return( TRUE );
}

/******************************************************************************
**                            End Of File
******************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频在线一区| 国产亚洲欧洲997久久综合| 国产一区二区免费视频| 亚洲天堂久久久久久久| 欧美一级国产精品| 91成人免费电影| 懂色av噜噜一区二区三区av| 日本最新不卡在线| 亚洲少妇30p| 欧美国产亚洲另类动漫| 欧美一区二区在线看| 日本乱码高清不卡字幕| 成人18精品视频| 久久99精品国产.久久久久久 | 日韩免费高清视频| 在线视频一区二区三| 粉嫩av一区二区三区| 麻豆91在线播放免费| 午夜精品久久久久影视| 亚洲精品写真福利| 中文字幕免费不卡| 久久久久久黄色| 欧美tickle裸体挠脚心vk| 欧美日韩的一区二区| 欧美视频精品在线观看| 日韩精品中文字幕在线一区| 欧美偷拍一区二区| 一本到一区二区三区| 成人午夜视频在线| 国产高清在线精品| 国产激情偷乱视频一区二区三区| 久久99精品久久久久久动态图| 日本欧美肥老太交大片| 日韩国产在线观看一区| 午夜a成v人精品| 视频一区二区不卡| 日韩电影网1区2区| 日本欧美加勒比视频| 日韩精品乱码免费| 蜜桃视频在线观看一区二区| 奇米色一区二区三区四区| 免费一区二区视频| 日本sm残虐另类| 日韩一区欧美二区| 久久国产精品一区二区| 紧缚捆绑精品一区二区| 国产成人精品三级麻豆| 成人免费高清在线| 99国内精品久久| 欧美午夜精品一区二区蜜桃 | 久久久久久夜精品精品免费| 国产亚洲短视频| 中文字幕制服丝袜成人av| 国产欧美一区二区精品婷婷| 国产精品麻豆一区二区| 一区二区三区四区不卡视频| 石原莉奈在线亚洲三区| 国内精品嫩模私拍在线| 成人性生交大片免费看中文网站| 不卡视频在线看| 欧美午夜精品一区二区三区| 欧美一区二区视频观看视频 | 亚洲午夜精品网| 亚洲成人福利片| 日本视频在线一区| 麻豆精品蜜桃视频网站| 国产麻豆午夜三级精品| 不卡一区二区三区四区| 91美女片黄在线观看| 色先锋资源久久综合| 欧美色大人视频| 日韩女优毛片在线| 亚洲国产精品黑人久久久| 日韩午夜激情视频| 1区2区3区国产精品| 亚洲免费av网站| 亚洲福利一区二区三区| 美女视频黄久久| 成人午夜视频在线| 色老汉一区二区三区| 91.xcao| 日韩女同互慰一区二区| 国产精品人妖ts系列视频| 性做久久久久久免费观看欧美| 另类的小说在线视频另类成人小视频在线| 国产一区日韩二区欧美三区| 99精品黄色片免费大全| 欧美绝品在线观看成人午夜影视| 日韩欧美高清dvd碟片| 国产精品视频免费| 一区二区三区中文字幕| 国产综合一区二区| 在线视频你懂得一区二区三区| 制服丝袜亚洲网站| 久久久久久免费网| 亚洲国产精品一区二区久久 | 久久久蜜桃精品| 亚洲色图制服丝袜| 免费人成精品欧美精品| 99精品在线免费| 日韩免费高清av| 国产清纯白嫩初高生在线观看91 | 亚洲嫩草精品久久| 免费视频一区二区| 色哟哟欧美精品| 久久免费电影网| 日日夜夜精品视频天天综合网| 国产精品综合网| 欧美唯美清纯偷拍| 国产精品丝袜一区| 久久国产精品99精品国产| 91丨porny丨中文| 国产亚洲精品免费| 免费人成精品欧美精品| 国产精品12区| 日韩精品一区二区在线| 亚洲自拍偷拍九九九| 成人伦理片在线| 久久伊99综合婷婷久久伊| 午夜精品久久久久影视| 色综合天天综合网天天狠天天| 中文一区二区在线观看| 狠狠色狠狠色综合| 欧美二区乱c少妇| 亚洲综合激情另类小说区| 成人激情免费电影网址| 欧美不卡一区二区三区四区| 日韩在线a电影| 欧美三级三级三级| 伊人夜夜躁av伊人久久| 成人a级免费电影| 国产亚洲精品资源在线26u| 麻豆精品久久精品色综合| 色综合久久综合网97色综合 | 国产一区91精品张津瑜| 日韩欧美自拍偷拍| 亚洲国产精品久久艾草纯爱| 欧美在线免费观看视频| 九色|91porny| 欧美一区二区美女| 日本视频中文字幕一区二区三区| 欧美三片在线视频观看 | 亚洲国产精品久久人人爱蜜臀| 91极品视觉盛宴| 一区二区三区四区五区视频在线观看| 盗摄精品av一区二区三区| 国产欧美久久久精品影院| 国产一区二区不卡在线| 久久久蜜臀国产一区二区| 九色|91porny| 久久综合色之久久综合| 久久aⅴ国产欧美74aaa| 精品免费日韩av| 久久99精品久久久久久动态图| 日韩欧美国产一区二区在线播放| 亚洲成av人片一区二区三区| 91精品国产欧美日韩| 久久99国内精品| 国产亚洲欧洲一区高清在线观看| 国产一区二区三区国产| 久久精品网站免费观看| 岛国精品在线播放| 亚洲欧美在线视频观看| 在线一区二区三区四区| 亚洲国产日韩a在线播放性色| 精品1区2区3区| 久久69国产一区二区蜜臀| 26uuu色噜噜精品一区| 国产麻豆9l精品三级站| 中文字幕亚洲精品在线观看 | 欧美精品一卡两卡| 九九**精品视频免费播放| 国产喷白浆一区二区三区| 不卡电影免费在线播放一区| 一区二区三区四区不卡在线| 欧美欧美欧美欧美| 亚洲一区二区在线免费观看视频 | 全国精品久久少妇| 久久综合色婷婷| 91丨porny丨中文| 日日夜夜精品视频免费| 国产精品素人视频| 欧美视频一区在线观看| 日韩精品乱码av一区二区| 久久综合av免费| 风流少妇一区二区| 午夜欧美2019年伦理| 久久亚洲二区三区| www.亚洲免费av| 日韩影院免费视频| 中文字幕av一区二区三区高| 欧美视频一区在线观看| 国产中文一区二区三区| 一区精品在线播放| 26uuu久久综合| 色国产综合视频| 国产在线精品不卡| 亚洲精品欧美在线| 久久婷婷色综合| 欧美色图在线观看|