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

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

?? dadc_test.c

?? nxp的LPC2888處理器的示例代碼.
?? C
字號:
/*****************************************************************************
 *   ddac_test.c:  DDAC 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;

  /* setup DADC */
  DAINCTRL = 0x0004;
  DADCCTRL = 0x33;
  DECCTRL = 0x580C0C;

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

  SAIMASK4 = 0x3EF;

  while (word_cnt < 0x100000);

  /* setup DADC */
  DAINCTRL = 0x1087;
  DADCCTRL = 0x99;

  return 0;
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品自线一区二区三区视频| 亚洲精品ww久久久久久p站| 中文字幕欧美日韩一区| 一区二区三区视频在线观看| 狠狠色丁香婷婷综合久久片| 色天使久久综合网天天| 久久午夜免费电影| 亚洲国产成人porn| 国产成人在线色| 91精选在线观看| 亚洲欧美日韩在线播放| 精品亚洲国产成人av制服丝袜| heyzo一本久久综合| www.激情成人| 欧美卡1卡2卡| 亚洲精品欧美综合四区| 精品制服美女丁香| 国模无码大尺度一区二区三区| 色综合久久88色综合天天6| 久久婷婷成人综合色| 亚洲国产成人av网| 国产69精品久久777的优势| 欧美久久久久久久久中文字幕| 国产亚洲一区二区三区| 亚洲国产综合视频在线观看| 成人综合婷婷国产精品久久免费| 欧美日韩在线观看一区二区| 国产精品久久久久7777按摩| 蜜桃久久av一区| 欧美视频你懂的| 国产精品久久久久久久久动漫| 免费三级欧美电影| 欧美在线免费视屏| 国产精品第13页| 日韩福利电影在线观看| 懂色av一区二区三区免费看| 欧美高清hd18日本| 亚洲欧美另类久久久精品2019| 午夜精品123| 99精品欧美一区二区三区综合在线| 久久久久久久精| 裸体在线国模精品偷拍| 51久久夜色精品国产麻豆| 亚洲一级二级在线| 一本到一区二区三区| 一区二区高清在线| 在线精品亚洲一区二区不卡| 久久久精品人体av艺术| 国产精品99精品久久免费| 亚洲精品在线网站| 激情国产一区二区| 日韩视频免费观看高清完整版在线观看 | 看电视剧不卡顿的网站| 制服.丝袜.亚洲.中文.综合| 亚洲h在线观看| 欧美丰满少妇xxxxx高潮对白| 亚洲一区二区三区在线看| 日本乱人伦一区| 另类小说综合欧美亚洲| 精品国产麻豆免费人成网站| 国产在线精品一区二区夜色| 久久久久久日产精品| 国产高清久久久久| 中文幕一区二区三区久久蜜桃| 北条麻妃一区二区三区| 亚洲人妖av一区二区| 成人永久aaa| 一二三四社区欧美黄| 这里只有精品电影| 国产一区二区电影| 国产精品不卡一区二区三区| 色婷婷综合久久久久中文| 亚洲成av人综合在线观看| 日韩午夜av电影| 韩国成人福利片在线播放| 国产精品乱码一区二三区小蝌蚪| 经典三级视频一区| 国产精品理论片在线观看| 成人免费视频一区| 亚洲精品国产一区二区三区四区在线| 日韩午夜精品电影| a在线欧美一区| 日韩国产精品大片| 国产精品免费视频一区| 欧美亚洲综合另类| 国产成人午夜高潮毛片| 亚洲综合在线五月| 日韩精品一区国产麻豆| www.成人网.com| 久久国产成人午夜av影院| 国产精品看片你懂得| 欧美一区二区三区不卡| jlzzjlzz亚洲女人18| 日本aⅴ免费视频一区二区三区| 国产精品区一区二区三| 在线播放日韩导航| 99视频一区二区| 国产在线精品一区二区不卡了| 亚洲精品你懂的| 国产精品污www在线观看| 69精品人人人人| 在线视频观看一区| 国产毛片精品视频| 一区二区三区四区不卡视频| 欧美国产精品一区| 久久色成人在线| 日韩一区二区三区三四区视频在线观看| av成人免费在线| 国产成人av电影在线| 免费在线观看日韩欧美| 亚洲电影中文字幕在线观看| 中文一区一区三区高中清不卡| 日韩色在线观看| 欧美日韩和欧美的一区二区| 国产一区二区福利视频| 久久亚洲综合色一区二区三区 | 欧美性色aⅴ视频一区日韩精品| 国产不卡视频一区| 狠狠色狠狠色综合日日91app| 免费在线看一区| 同产精品九九九| 中文字幕综合网| 中文字幕一区二区不卡| 国产精品免费视频一区| 中文在线资源观看网站视频免费不卡| 精品粉嫩aⅴ一区二区三区四区| 欧美一区二区三区在| 欧美日韩日日夜夜| 欧美色精品在线视频| 日本精品视频一区二区三区| 99久久久无码国产精品| eeuss影院一区二区三区 | 91麻豆国产自产在线观看| 欧美a级一区二区| 亚洲精品高清在线| 国产精品久久久久精k8| 久久精品一二三| 中文字幕一区在线观看视频| 国产精品久久久久久久浪潮网站| 国产女同互慰高潮91漫画| 中文字幕一区二| 亚洲午夜日本在线观看| 日韩精品国产欧美| 久久电影网电视剧免费观看| 成人99免费视频| 在线中文字幕一区二区| 欧美日韩成人高清| 欧美在线免费观看亚洲| 亚洲精品一线二线三线| 中文欧美字幕免费| 午夜精品福利一区二区三区蜜桃| 一区二区三区.www| 18欧美亚洲精品| 国产精品电影院| 亚洲免费在线看| 亚洲成人在线网站| 精品一区二区三区免费视频| 国产不卡视频在线播放| 国产成人精品三级| 99精品视频一区二区| 91麻豆国产香蕉久久精品| 欧美午夜在线一二页| 欧美一区二区视频在线观看| 欧美美女黄视频| 久久综合成人精品亚洲另类欧美| 久久综合狠狠综合久久激情| 日韩精品一区二| 国产精品久久久久7777按摩| 亚洲色大成网站www久久九九| 日韩国产一区二| 国产精品灌醉下药二区| 成人动漫一区二区在线| 国产精品一区在线| 91在线丨porny丨国产| 国产剧情av麻豆香蕉精品| 国产在线国偷精品免费看| 国产乱子轮精品视频| 91理论电影在线观看| 91久久精品一区二区| 成人一二三区视频| 九色综合狠狠综合久久| 亚洲成a人v欧美综合天堂| 亚洲精品视频观看| 精品亚洲成a人| 欧美日韩精品一区二区三区蜜桃| 久久―日本道色综合久久| 亚洲午夜免费视频| 不卡一二三区首页| 精品成人私密视频| 亚洲成a人在线观看| 99视频国产精品| 久久综合999| 午夜伊人狠狠久久| 91麻豆国产在线观看| 久久久精品日韩欧美| 日本aⅴ精品一区二区三区| 色婷婷综合久久久久中文| 国产视频911| 亚洲成人1区2区| 99久久精品国产麻豆演员表|