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

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

?? dai_test.c

?? nxp的LPC2888處理器的示例代碼.
?? C
字號:
/*****************************************************************************
 *   dai_test.c:  DAI test main C entry file for NXP 
 *   LPC2xxx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.14  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC288x.h"                        /* LPC2xxx definitions */
#include "type.h"
#include "irq.h"
#include "target.h"
#include "ex_sdram.h"

static DWORD word_cnt;
static DWORD cnt;
volatile DWORD *rd_ptr; 
volatile DWORD *wr_ptr; 

void DAI_ISR(void)
{  
  DWORD status, data;

  status = SAISTAT1;

  if (status & 0x010)
  {
	if (word_cnt >= 0x100000)
	{
      wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
	  word_cnt = 0;
	}
    data = LR32IN1;
	*wr_ptr = data;
	wr_ptr ++;
    data = LR32IN1;
	*wr_ptr = data;
	wr_ptr ++;
    data = LR32IN1;
	*wr_ptr = data;
	wr_ptr ++;
    data = LR32IN1;
	*wr_ptr = data;
	wr_ptr ++;
	word_cnt += 4;
    SAISTAT1 = 0x3FF;
  }
}

void DAO_ISR(void)
{  
  DWORD status, data;

  status = SAOSTAT1;

  if (status & 0x040)
  {
	if (word_cnt >= 0x100000)
	{
      rd_ptr = (DWORD *)SDRAM_BASE_ADDR;
	  word_cnt = 0;
	}
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT1 = data;
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT1 = data;
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT1 = data;
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT1 = data;
	word_cnt += 4;
    SAOSTAT1 = 0x3FF;
  }
}

void DADC_ISR(void)
{  
  DWORD status, data;

  status = SAISTAT4;

  if (status & 0x010)
  {
    status = DECSTAT;
    if (status & 0x2)
    {
	  return;
	}
	if (word_cnt < 0x100000)
	{
      data = LR32IN4;
	  *wr_ptr = data;
	  wr_ptr ++;
      data = LR32IN4;
	  *wr_ptr = data;
	  wr_ptr ++;
      data = LR32IN4;
	  *wr_ptr = data;
	  wr_ptr ++;
      data = LR32IN4;
	  *wr_ptr = data;
	  wr_ptr ++;
  	  word_cnt += 4;
      SAISTAT4 = 0x3FF;
	}
  }
}

void DDAC_ISR(void)
{  
  DWORD status, data;

  status = SAOSTAT2;

  if (status & 0x040)
  {
	if (word_cnt >= 0x100000)
	{
	  rd_ptr = (DWORD *)SDRAM_BASE_ADDR;
	  word_cnt = 0;
	  cnt += 1;
	}
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT2 = data;
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT2 = data;
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT2 = data;
	data = *rd_ptr;
	rd_ptr ++;
    LR32OUT2 = data;
	word_cnt += 4;
    SAOSTAT2 = 0x3FF;
  }
}

/*****************************************************************************
**   Main Function  main()
******************************************************************************/
int main (void)
{
  DWORD  status, config;

  TargetResetInit();

  /* initialize memory */
  SDRAMInit();

  wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
  word_cnt = 0;
  cnt = 0;

  /* initialize I2S */
  SIOCR = 0xFF;
  I2S_FMT = 0x11C;

  /* initialize High Speed PLL */
  HPMODE = 0x04;
  HPFIN = 0x01;
  HPNDEC = 131;
  HPMDEC = 1408;
  HPPDEC = 23;
  HPSELR = 8;
  HPSELI = 2;
  HPSELP = 31;
  HPMODE = 0x01;
  status = HPSTAT;
  while ((status & 1) == 0)
  {
    status = HPSTAT;
  }

  /* configurate Selection Stages */
  DAIOFSR2 = 0x07;
  DAIOSCR = 0x02;

  DAIFSR2 = 0x03;
  DAISCR = 0x02;

  /* configurate Spreading Stages */

  /* Disable Fractional Divider in the Base Control register. */ 
  DAIOBCR = 0;

  /* Clear RUN bit in FDCR, fractional divider 0 */
  DAIOFDCR0 &= ~0x01;
  /* Reset FDR by setting bit 1(FDRES), set FDSTRCH bit,
  MADD is 0x48(72), MSUB is 0xE8(232). where m = 0x60 and 
  n = 0x18. FDR is divided by 4. */
  config = (((DAIOFDCR0_MSUB << 8) | DAIOFDCR0_MADD) << 3) | (0x1 << 2) | (0x1 << 1);
  DAIOFDCR0 = config;
  /* Clear Reset(FDRES) bit */
  config &= ~0x2;
  DAIOFDCR0 = config;
  /* Set RUN bit(FDRUN). */   
  config |= 0x1;
  DAIOFDCR0 = config;
  /* Enable Select Register setting. ESR with 3 bit fields.
  bit 0 ESR_EN is 1 causing spreading stage output clock under
  the control of the fractional divider, which runs slower
  than the selection stage clock. ESR_SEL, bits 3:1 is 0, FDR0 is 
  selected for DDAC ESR1. */
  DDACESR1 = (0x0<<1) | (0x1<<0);

  /* Clear RUN bit in FDCR, fractional divider 1 */
  DAIOFDCR1 &= ~0x01;
  /* Reset FDR by setting bit 1(FDRES), set FDSTRCH bit,
  MADD is 0x48(72), MSUB is 0xE8(232). where m = 0x60 and 
  n = 0x18. FDR is divided by 4. */
  config = (((DAIOFDCR1_MSUB << 8) | DAIOFDCR1_MADD) << 3) | (0x1 << 2) | (0x1 << 1);
  DAIOFDCR1 = config;
  /* Clear Reset(FDRES) bit */
  config &= ~0x2;
  DAIOFDCR1 = config;
  /* Set RUN bit(FDRUN). */   
  config |= 0x1;
  DAIOFDCR1 = config;
  /* Enable Select Register setting. ESR with 3 bit fields.
  bit 0 ESR_EN is 1 causing spreading stage output clock under
  the control of the fractional divider, which runs slower
  than the selection stage clock. ESR_SEL, bits 3:1 is 1, FDR1 is 
  selected for DDAC ESR2, DADC ESR1, DADC ESR2. */
  DDACESR2 = (0x1<<1) | (0x1<<0);
  DADCESR1 = (0x1<<1) | (0x1<<0);
  DADCESR2 = (0x1<<1) | (0x1<<0);

  /* Clear RUN bit in FDCR, fractional divider 2 */
  DAIOFDCR2 &= ~0x01;
  /* Reset FDR by setting bit 1(FDRES), set FDSTRCH bit,
  MADD is 0x78(120), MSUB is 0xF8(248). where m = 0x80 and 
  n = 0x08. FDR is divided by 16. */
  config = (((DAIOFDCR2_MSUB << 8) | DAIOFDCR2_MADD) << 3) | (0x1 << 2) | (0x1 << 1);
  DAIOFDCR2 = config;
  /* Clear Reset(FDRES) bit */
  config &= ~0x2;
  DAIOFDCR2 = config;
  /* Set RUN bit(FDRUN). */   
  config |= 0x1;
  DAIOFDCR2 = config;
  /* Enable Select Register setting. ESR with 3 bit fields.
  bit 0 ESR_EN is 1 causing spreading stage output clock under
  the control of the fractional divider, which runs slower
  than the selection stage clock. ESR_SEL, bits 3:1 is 2, FDR2 is 
  selected for DAI ESR1. */
//  DAIESR1 = (0x2<<1) | (0x1<<0);

  /* Clear RUN bit in FDCR, fractional divider 3 */
  DAIOFDCR3 &= ~0x01;
  /* Reset FDR by setting bit 1(FDRES), set FDSTRCH bit,
  MADD is 0x48(72), MSUB is 0xB8(184). where m = 0x90 and 
  n = 0x48. FDR is divided by 2. */
  config = (((DAIOFDCR3_MSUB << 8) | DAIOFDCR3_MADD) << 3) | (0x1 << 2) | (0x1 << 1);
  DAIOFDCR3 = config;
  /* Clear Reset(FDRES) bit */
  config &= ~0x2;
  DAIOFDCR3 = config;
  /* Set RUN bit(FDRUN). */   
  config |= 0x1;
  DAIOFDCR3 = config;
  /* Enable Select Register setting. ESR with 3 bit fields.
  bit 0 ESR_EN is 1 causing spreading stage output clock under
  the control of the fractional divider, which runs slower
  than the selection stage clock. ESR_SEL, bits 3:1 is 3, FDR3 is 
  selected for DAO ESR1. */
  DAOESR1 = (0x3<<1) | (0x1<<0);

  /* Clear RUN bit in FDCR, fractional divider 4 */
  DAIOFDCR4 &= ~0x01;
  /* Reset FDR by setting bit 1(FDRES), set FDSTRCH bit,
  MADD is 0x1FF(511), MSUB is 0x3FF(1023). where m = 0x200 and 
  n = 0x001. FDR is divided by 512. */
  config = (((DAIOFDCR4_MSUB << 10) | DAIOFDCR4_MADD) << 3) | (0x1 << 2) | (0x1 << 1);
  DAIOFDCR4 = config;
  /* Clear Reset(FDRES) bit */
  config &= ~0x2;
  DAIOFDCR4 = config;
  /* Set RUN bit(FDRUN). */   
  config |= 0x1;
  DAIOFDCR4 = config;
  /* Enable Select Register setting. ESR with 3 bit fields.
  bit 0 ESR_EN is 1 causing spreading stage output clock under
  the control of the fractional divider, which runs slower
  than the selection stage clock. ESR_SEL, bits 3:1 is 4, FDR4 is 
  selected for DA1 ESR2, DAO ESR2. */
//  DAIESR2 = (0x4<<1) | (0x1<<0);
  DAOESR2 = (0x4<<1) | (0x1<<0);

  /* Clear RUN bit in FDCR, fractional divider 5 */
  DAIOFDCR5 &= ~0x01;
  /* Reset FDR by setting bit 1(FDRES), set FDSTRCH bit,
  MADD is 0x78(120), MSUB is 0xF8(248). where m = 0x80 and 
  n = 0x08. FDR is divided by 16. */
  config = (((DAIOFDCR5_MSUB << 8) | DAIOFDCR5_MADD) << 3) | (0x1 << 2) | (0x1 << 1);
  DAIOFDCR5 = config;
  /* Clear Reset(FDRES) bit */
  config &= ~0x2;
  DAIOFDCR5 = config;
  /* Set RUN bit(FDRUN). */   
  config |= 0x1;
  DAIOFDCR5 = config;
  /* Enable Select Register setting. ESR with 3 bit fields.
  bit 0 ESR_EN is 1 causing spreading stage output clock under
  the control of the fractional divider, which runs slower
  than the selection stage clock. ESR_SEL, bits 3:1 is 5, FDR5 is 
  selected for DAI ESR1. */
  DAOESR3 = (0x5<<1) | (0x1<<0);
   
  /* Base Control Register, set bit 0(FDRUN) to start all the FDRs. */
  DAIOBCR = 0x1;

  if ( install_IRQ(16, 1, DAI_ISR ) == FALSE )
  {
    while ( 1 );			/* Fatal error due to ISR installation failure */	
  }
  INT_REQ16=(1<<28)|(1<<27)|(1<<26)|(1<<16)|0x1; 
  INT_VECTOR0=IRQ_TABLE_BASE & MASK_INDEX;

  SAIMASK1 = 0x3EF;

  while (1);

  return 0;
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情免费网站| 一本大道综合伊人精品热热| 亚洲精品免费在线观看| 日韩一区二区电影在线| 色婷婷亚洲综合| 国产一区二区三区观看| 亚洲高清免费观看高清完整版在线观看| 欧美大尺度电影在线| 99精品黄色片免费大全| 精品一区二区三区香蕉蜜桃| 综合自拍亚洲综合图不卡区| 欧美精选午夜久久久乱码6080| 久久精品二区亚洲w码| 国产精品黄色在线观看| 51精品秘密在线观看| 国产成人8x视频一区二区| 一区二区三区四区中文字幕| 精品乱码亚洲一区二区不卡| 欧洲激情一区二区| 国产传媒一区在线| 亚洲sss视频在线视频| 久久精品亚洲乱码伦伦中文| 色丁香久综合在线久综合在线观看| 久久不见久久见免费视频7| 成人欧美一区二区三区| 欧美成人官网二区| 欧美视频一区二区在线观看| 成人网男人的天堂| 老司机精品视频导航| 亚洲成人免费视| 中文字幕一区二区三区不卡在线| 色综合久久久久综合体桃花网| 久久er99精品| 五月天亚洲婷婷| 中文字幕免费不卡在线| 欧美老年两性高潮| 粉嫩aⅴ一区二区三区四区五区| 亚洲国产一区在线观看| 精品国产三级电影在线观看| 欧美军同video69gay| 国产成人日日夜夜| 日韩黄色免费电影| 亚洲欧美日韩电影| 精品美女被调教视频大全网站| 欧美肥胖老妇做爰| 欧美亚洲动漫另类| 日本道色综合久久| 91香蕉国产在线观看软件| 国产剧情在线观看一区二区| 美女视频第一区二区三区免费观看网站| 一区二区高清免费观看影视大全| 国产精品久久国产精麻豆99网站 | 欧美制服丝袜第一页| 成人污污视频在线观看| 国产成人在线影院| 激情图片小说一区| 麻豆精品一区二区三区| 三级一区在线视频先锋| 亚洲18色成人| 午夜亚洲国产au精品一区二区| 亚洲精品免费看| 自拍偷拍国产亚洲| 悠悠色在线精品| 亚洲永久精品大片| 1区2区3区国产精品| |精品福利一区二区三区| 国产精品乱码妇女bbbb| 国产精品色一区二区三区| 中文乱码免费一区二区| 日本一区二区高清| 一区二区中文视频| 一区二区三区精品| 午夜欧美2019年伦理| 日韩成人午夜精品| 精品在线观看视频| 国产激情精品久久久第一区二区| 国内一区二区在线| 成年人国产精品| 91精彩视频在线| 在线电影院国产精品| 欧美va亚洲va在线观看蝴蝶网| 亚洲精品一区二区在线观看| 国产丝袜欧美中文另类| 亚洲日本青草视频在线怡红院| 亚洲免费观看高清在线观看| 亚洲成人激情自拍| 卡一卡二国产精品| 夫妻av一区二区| 一本大道久久精品懂色aⅴ| 色婷婷综合久久久久中文| 8v天堂国产在线一区二区| 欧美嫩在线观看| 日韩欧美一区二区免费| 精品国产一二三区| 久久综合狠狠综合| 欧美电影免费观看高清完整版 | 免费一级片91| 国产最新精品免费| 91丨九色丨黑人外教| 555www色欧美视频| 欧美激情一区不卡| 亚洲自拍偷拍图区| 久久av资源站| 91黄色激情网站| 精品亚洲国产成人av制服丝袜| 国产女人18水真多18精品一级做 | 韩国欧美国产1区| 午夜精品视频在线观看| 久久99九九99精品| 91在线观看视频| 欧美一区二区二区| 国产精品视频一区二区三区不卡| 国产精品免费视频网站| 亚洲综合视频网| 国产麻豆精品一区二区| 91久久精品一区二区二区| xfplay精品久久| 一区二区三区在线播放| 久久97超碰色| 精品视频1区2区| 国产日本亚洲高清| 五月开心婷婷久久| 成人性色生活片| 91麻豆精品国产91久久久资源速度 | 精品裸体舞一区二区三区| 国产精品久久久久影视| 蜜桃精品在线观看| 91高清视频在线| 2014亚洲片线观看视频免费| 亚洲综合在线免费观看| 成人h版在线观看| 欧美精品高清视频| 日本午夜精品一区二区三区电影| 7777精品伊人久久久大香线蕉最新版| 欧美性色aⅴ视频一区日韩精品| 久久久久一区二区三区四区| 日日夜夜免费精品| 成人毛片在线观看| 国产日韩欧美不卡在线| 99国产精品国产精品久久| 日韩免费高清视频| 亚洲成人激情av| 在线视频国内自拍亚洲视频| 国产精品欧美综合在线| 天堂va蜜桃一区二区三区漫画版 | 色天天综合色天天久久| 日韩一区二区三区视频在线| 亚洲综合免费观看高清在线观看| 国产在线一区观看| 欧美精品日韩一区| 日韩av中文字幕一区二区| 欧美性极品少妇| 亚洲午夜激情网站| 欧美午夜精品久久久久久超碰| 亚洲狠狠丁香婷婷综合久久久| av中文字幕亚洲| 国产精品国产三级国产| 99视频有精品| 亚洲视频电影在线| 色综合视频一区二区三区高清| 国产精品区一区二区三| jiyouzz国产精品久久| 国产精品久久久久久久午夜片| 成人一级黄色片| 国产精品女人毛片| 不卡影院免费观看| 亚洲欧美一区二区三区国产精品 | 亚洲成人免费观看| 成人综合婷婷国产精品久久免费| 日本一区二区免费在线观看视频 | 国产999精品久久| 国产精品人成在线观看免费| 99视频超级精品| 国产一区二区美女| 国产精品美女久久久久高潮| 99久久99久久精品国产片果冻| 亚洲激情综合网| 欧美日韩亚州综合| 另类的小说在线视频另类成人小视频在线 | 91福利国产精品| 亚洲午夜国产一区99re久久| 欧美精品高清视频| 九九九久久久精品| 国产欧美日韩在线| 色成年激情久久综合| 无吗不卡中文字幕| 欧美成人国产一区二区| 成人免费看视频| 亚洲精品第1页| 欧美一级专区免费大片| 国产一区二区在线观看视频| 亚洲欧洲国产日韩| 欧美猛男男办公室激情| 国产精品资源网| 亚洲欧美日韩成人高清在线一区| 欧美日韩一区二区三区不卡| 久久 天天综合| 亚洲六月丁香色婷婷综合久久| 欧美精品丝袜久久久中文字幕| 激情综合色丁香一区二区|