Added SPI3 support to codec.c / Moved the codec configuration to board.h

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@475 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
kyle.hu.gz
2010-03-10 23:00:10 +00:00
parent 2190f72040
commit 05faf67f5e
4 changed files with 189 additions and 77 deletions
+15 -1
View File
@@ -42,12 +42,26 @@
// <i>Default: 1
#define STM32_CONSOLE_USART 1
// <o> LCD Modul Version
// <o> LCD Module Version
// <1=>Version 1:fmt0371
// <2=>Version 2:ili9320/9325
// <i>Default: 1
#define LCD_VERSION 1
/*
* IMPORTANT NOTICE:
* CODEC_MASTER_MODE = 1 with CODEC_USE_SPI3 = 0 is unusable due to a hardware bug of STM32's SPI2.
*/
// <o> CODEC Mode
// <0=>I2S Slave
// <1=>I2S Master
#define CODEC_MASTER_MODE 0
// <o> CODEC SPI Port
// <0=>SPI2
// <1=>SPI3
#define CODEC_USE_SPI3 0
void rt_hw_board_led_on(int n);
void rt_hw_board_led_off(int n);
void rt_hw_board_init(void);
+120 -76
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -3,6 +3,7 @@
#include <stdint.h>
/* Register Definitions */
#define REG_SOFTWARE_RESET ((uint16_t)0)
#define REG_POWER_MANAGEMENT1 ((uint16_t)(1 << 9))
#define REG_POWER_MANAGEMENT2 ((uint16_t)(2 << 9))
+53
View File
@@ -353,6 +353,7 @@ void DMA1_Channel4_IRQHandler(void)
*******************************************************************************/
void DMA1_Channel5_IRQHandler(void)
{
#if !CODEC_USE_SPI3
extern void codec_dma_isr(void);
/* enter interrupt */
@@ -370,6 +371,7 @@ void DMA1_Channel5_IRQHandler(void)
/* leave interrupt */
rt_interrupt_leave();
#endif
}
/*******************************************************************************
@@ -636,6 +638,57 @@ void SDIO_IRQHandler(void)
#endif
}
/*******************************************************************************
* Function Name : SPI3_IRQHandler
* Description : This function handles SPI3 global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void SPI3_IRQHandler(void)
{
#if CODEC_USE_SPI3
extern void codec_isr(void);
/* enter interrupt */
rt_interrupt_enter();
codec_isr();
/* leave interrupt */
rt_interrupt_leave();
#endif
}
/*******************************************************************************
* Function Name : DMA2_Channel2_IRQHandler
* Description : This function handles DMA2 Channel 2 interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void DMA2_Channel2_IRQHandler(void)
{
#if CODEC_USE_SPI3
extern void codec_dma_isr(void);
/* enter interrupt */
rt_interrupt_enter();
if (DMA_GetITStatus(DMA2_IT_TC2))
{
/* clear DMA flag */
DMA_ClearFlag(DMA2_FLAG_TC2 | DMA2_FLAG_TE2);
/* transmission complete, invoke serial dma tx isr */
codec_dma_isr();
}
/* leave interrupt */
rt_interrupt_leave();
#endif
}
/* add on 2009-12-31 for usb */
extern void CTR_HP(void);
extern void USB_Istr(void);