⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2s.h

📁 COG-VP12864液晶屏驱动代码及对应RTC实例
💻 H
字号:
/*
*********************************************************
// Copyright (c)2003 Ark Pioneer Microelectronics Ltd.,
// All Rights Reserved
//
// Filename:i2s.h
// Version:1.0
// Created:2004.01.30   By: Philip
*********************************************************
*/

#ifndef _I2S_H_
#define _I2S_H_

#include "arksoc.h"
#include "config.h"
#include "soc.h"
#include "gpio.h"
#include "irq.h"

extern void InitI2s(void);
extern void Reset(void);
extern void SetI2s0Play(void);
extern BYTE GetTFEntry(void);
extern BYTE GetRFEntry(void);
extern WORD RecvFIFO(WORD number);
extern WORD TranFIFO(WORD number);

#define TRANSMIT_DATA_NUM   80      // the number of data to transmit
#define MAX_FIFO_NUM        32

extern const WORD wData[TRANSMIT_DATA_NUM];
extern WORD g_dataFlag;

#define I2S0_REGISTER_OFFSET    0xBFF20400
#define I2S1_REGISTER_OFFSET    0xBFF20500

/*----------------------------------------------------------------
    I2S Registers (32-bit width)
----------------------------------------------------------------*/
// I2s 0 Registers
#define SACR0_I2S0      (I2S0_REGISTER_OFFSET + 0x00)
#define SACR1_I2S0      (I2S0_REGISTER_OFFSET + 0x04)
#define SASR0_I2S0      (I2S0_REGISTER_OFFSET + 0x0c)   //read-only
#define SAIMR_I2S0      (I2S0_REGISTER_OFFSET + 0x14)
#define SAICR_I2S0      (I2S0_REGISTER_OFFSET + 0x18)   //write-only
#define SADIV_I2S0      (I2S0_REGISTER_OFFSET + 0x60)
#define SADR_I2S0       (I2S0_REGISTER_OFFSET + 0x80)

// I2s 1 registers
#define SACR0_I2S1      (I2S1_REGISTER_OFFSET + 0x00)
#define SACR1_I2S1      (I2S1_REGISTER_OFFSET + 0x04)
#define SASR0_I2S1      (I2S1_REGISTER_OFFSET + 0x0c)   //read-only
#define SAIMR_I2S1      (I2S1_REGISTER_OFFSET + 0x14)
#define SAICR_I2S1      (I2S1_REGISTER_OFFSET + 0x18)   //write-only
#define SADIV_I2S1      (I2S1_REGISTER_OFFSET + 0x60)
#define SADR_I2S1       (I2S1_REGISTER_OFFSET + 0x80)

/*----------------------------------------------------------------
    I2S SACR0 Register bitmask 
----------------------------------------------------------------*/
// I2S FIFO Entry: RecvFIFO() bit 21:16
//                 TranFIFO() bit 13:8

#define bmRESET     bmBIT3
#define bmBITCLK    bmBIT2
#define bmSYNC      bmBIT1
#define bmI2SEN     bmBIT0

/*----------------------------------------------------------------
    I2S SASR0 Register bitmask 
----------------------------------------------------------------*/
// function GetTFEntry() and GetRFEntry() to get FIFO level
// irq bitmask in file irq.h
#define bmBUSY          bmBIT2
#define bmR_N0EMPTY     bmBIT1
#define bmT_NOFULL      bmBIT0

/*----------------------------------------------------------------
    I2S Audio Sample Frequency 
----------------------------------------------------------------*/
#define FREQ_48KHZ      0x0c    // BITCLK = 3.072MHz
#define FREQ_44KHZ      0x0d    // BITCLK = 2.836MHz
#define FREQ_22KHZ      0x1a    // BITCLK = 1.418MHz
#define FREQ_16KHZ      0x24    // BITCLK = 1.024MHz
#define FREQ_11KHZ      0x34    // BITCLK = 708.92KHz
#define FREQ_8KHZ       0x48    // BITCLK = 512.00KHz

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -