📄 iis.c
字号:
/***********************************************************************
* $Workfile: iis.c $
* $Revision: 1.1.1.1 $
* $Author: meterchen $
* $Date: 2003/11/10 17:01:07 $
*
* Project: Shenzhen-Nucleus-Net
*
* Description:
* IIS driver
*
* Revision History:
*
***********************************************************************
*
* Copyright (c) 2003 CHENMENG
*
* All rights reserved
*
**********************************************************************/
#include "44b.h"
#include "44blib.h"
#include "def.h"
#include "iis.h"
/*
* Use BDMA for iis data transfer
* one-shot
*
*/
void Iis_Tx(void)
{
unsigned short *txdata;
/*
* Init IIS port
*
*/
rIISCON = 0;
rBDICNT0 = 0;
rPCONE &= ~(3<<16);
rPCONE |= 0x2<<16; //gpe8~codeclk
rPUPE |= 1<<8;
rPCONF &= ~(0x7<<19);
rPCONF |= 0x4<<19; //gpf8~iisclk
rPCONF &= ~(0x7<<13);
rPCONF |= 0x4<<13; //gpf6~iisdo
rPCONF &= ~(0x7<<10);
rPCONF |= 0x4<<10; //gpf5~iislrck
rPUPF |= (1<<5)|(1<<6)|(1<<8);
/* txdata in flash and make it noncachable */
txdata=(unsigned short *)0x100000;
rNCACHBE1= ((int)txdata>>12) + ( (((int)txdata>>12) +0x100)<<16 );
/* IIS Initialize */
rIISCON=0x22; //Tx DMA enable,Rx idle,prescaler enable
rIISMOD=0x89; //Master,Tx,L-ch=low,iis,16bit ch.,codeclk=256fs,lrck=32fs
rIISPSR=0x33; //Prescaler_A/B enable, value=8
rIISFCON=0xa00; //Tx/Rx DMA,Tx/Rx FIFO --> start piling....
/* BDMA0 Initialize */
rBDISRC0=(1<<30)+(1<<28)+(int)(txdata); //Half word,inc,Buf
rBDIDES0=(1<<30)+(3<<28)+((int)IISFIF); //M2IO,fix,IISFIF
rBDICNT0=(1<<30)+(1<<26)+(3<<22)+(0<<21)+(0<<20)+0x68000; //iis,reserved,end_int,1_tx,DMA enable,COUNT
rBDICNT0 |= (1<<20);//enable
rBDCON0 = 0x0<<2;
/* Tx start */
rIISCON |=0x1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -