From 238051f6351d0be62cd31240b1bb2fd2fa6f829a Mon Sep 17 00:00:00 2001 From: SEEKFREE_Kang Date: Wed, 8 Jul 2020 18:43:29 +0800 Subject: [PATCH] =?UTF-8?q?V1.1.0=20=20=E5=AF=B9ISR=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=86=85=E7=9A=84=E4=B8=AD=E6=96=AD=E5=87=BD=E6=95=B0=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E6=B7=BB=E5=8A=A0enableInterrupts();=20=E4=BB=A5?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=B8=AD=E6=96=AD=E5=B5=8C=E5=A5=97=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20=20=E5=A2=9E=E5=8A=A0RDA5807=E8=8E=B7?= =?UTF-8?q?=E5=8F=96RSSI=E5=8A=9F=E8=83=BD=E5=87=BD=E6=95=B0=20=20?= =?UTF-8?q?=E5=AF=B9DMA=E8=BF=9E=E6=8E=A5=E4=BC=A0=E8=BE=93=E6=89=80?= =?UTF-8?q?=E7=94=A8=E5=88=B0=E7=9A=84=E5=8F=98=E9=87=8F=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AEERU=5FDMA=5FINT=5FSERVICE=E6=9D=A5=E5=B0=86=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E6=94=BE=E5=88=B0=E5=AF=B9=E5=BA=94=E7=9A=84CPU?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example/1-ADC_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/1-ADC_Demo/USER/isr.c | 24 ++++++- .../Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- .../10-Interrupt_Priority_Set_Demo/USER/isr.c | 21 +++++++ .../11-Systick_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/11-Systick_Demo/USER/isr.c | 21 +++++++ .../Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/12-Dual_Core_Demo/USER/isr.c | 21 +++++++ Example/13-FFT_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/13-FFT_Demo/USER/isr.c | 21 +++++++ .../Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- .../USER/isr.c | 21 +++++++ .../Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/2-LED_Blink_Demo/USER/isr.c | 21 +++++++ Example/3-PIT_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/3-PIT_Demo/USER/isr.c | 22 ++++++- .../4-Encoder_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/4-Encoder_Demo/USER/isr.c | 21 +++++++ Example/5-UART_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/5-UART_Demo/USER/isr.c | 21 +++++++ .../6-Printf_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/6-Printf_Demo/USER/isr.c | 21 +++++++ .../Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/7-GPIO_Interrupt_Demo/USER/isr.c | 62 +++++++++++++------ .../8-EEPROM_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/8-EEPROM_Demo/USER/isr.c | 21 +++++++ Example/9-PWM_Demo/Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eeprom.c | 2 +- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- Example/9-PWM_Demo/USER/Cpu0_Main.c | 3 +- Example/9-PWM_Demo/USER/isr.c | 21 +++++++ Seekfree_TC264_Opensource_Library/.cproject | 4 -- .../Libraries/doc/version.txt | 11 +++- .../Libraries/seekfree_libraries/zf_eru_dma.c | 11 +++- .../seekfree_peripheral/SEEKFREE_IIC.c | 2 +- .../seekfree_peripheral/SEEKFREE_IIC.h | 4 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 1 - .../seekfree_peripheral/SEEKFREE_RDA5807.c | 47 +++++++++++--- .../seekfree_peripheral/SEEKFREE_RDA5807.h | 4 +- .../USER/Cpu0_Main.c | 5 +- .../USER/Cpu1_Main.c | 1 - Seekfree_TC264_Opensource_Library/USER/isr.c | 21 +++++++ .../尽量不要使用的引脚.txt | 10 +++ .../推荐IO分配.txt | 13 +++- 140 files changed, 1339 insertions(+), 285 deletions(-) create mode 100644 Seekfree_TC264_Opensource_Library/尽量不要使用的引脚.txt diff --git a/Example/1-ADC_Demo/Libraries/doc/version.txt b/Example/1-ADC_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/1-ADC_Demo/Libraries/doc/version.txt +++ b/Example/1-ADC_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/1-ADC_Demo/USER/isr.c b/Example/1-ADC_Demo/USER/isr.c index 72b40a5..490fd1f 100644 --- a/Example/1-ADC_Demo/USER/isr.c +++ b/Example/1-ADC_Demo/USER/isr.c @@ -22,9 +22,11 @@ #include "isr.h" //isr.cжϺĵڶ̶Ϊ0벻ҪģʹCPU1жҲҪģҪCPU1жֻҪisr_config.h޸ĶӦĺ궨弴 + //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -32,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -53,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -66,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -78,8 +85,9 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) } //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ -//IFX_INTERRUPT(eru_ch2_ch6_isr, ERU_CH2_CH6_INT_SERVICE, ERU_CH2_CH6_INT_PRIO) +//IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -96,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -114,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -123,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -153,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -169,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt b/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/10-Interrupt_Priority_Set_Demo/USER/isr.c b/Example/10-Interrupt_Priority_Set_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/10-Interrupt_Priority_Set_Demo/USER/isr.c +++ b/Example/10-Interrupt_Priority_Set_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/11-Systick_Demo/Libraries/doc/version.txt b/Example/11-Systick_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/11-Systick_Demo/Libraries/doc/version.txt +++ b/Example/11-Systick_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/11-Systick_Demo/USER/isr.c b/Example/11-Systick_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/11-Systick_Demo/USER/isr.c +++ b/Example/11-Systick_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/12-Dual_Core_Demo/Libraries/doc/version.txt b/Example/12-Dual_Core_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/12-Dual_Core_Demo/Libraries/doc/version.txt +++ b/Example/12-Dual_Core_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/12-Dual_Core_Demo/USER/isr.c b/Example/12-Dual_Core_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/12-Dual_Core_Demo/USER/isr.c +++ b/Example/12-Dual_Core_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/13-FFT_Demo/Libraries/doc/version.txt b/Example/13-FFT_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/13-FFT_Demo/Libraries/doc/version.txt +++ b/Example/13-FFT_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/13-FFT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/13-FFT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/13-FFT_Demo/USER/isr.c b/Example/13-FFT_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/13-FFT_Demo/USER/isr.c +++ b/Example/13-FFT_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/doc/version.txt b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/doc/version.txt +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/14-Specifies_Variable_Or_Code_Location_Demo/USER/isr.c b/Example/14-Specifies_Variable_Or_Code_Location_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/14-Specifies_Variable_Or_Code_Location_Demo/USER/isr.c +++ b/Example/14-Specifies_Variable_Or_Code_Location_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/2-LED_Blink_Demo/Libraries/doc/version.txt b/Example/2-LED_Blink_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/2-LED_Blink_Demo/Libraries/doc/version.txt +++ b/Example/2-LED_Blink_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/2-LED_Blink_Demo/USER/isr.c b/Example/2-LED_Blink_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/2-LED_Blink_Demo/USER/isr.c +++ b/Example/2-LED_Blink_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/3-PIT_Demo/Libraries/doc/version.txt b/Example/3-PIT_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/3-PIT_Demo/Libraries/doc/version.txt +++ b/Example/3-PIT_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/3-PIT_Demo/USER/isr.c b/Example/3-PIT_Demo/USER/isr.c index 89a72c2..089f2b5 100644 --- a/Example/3-PIT_Demo/USER/isr.c +++ b/Example/3-PIT_Demo/USER/isr.c @@ -19,7 +19,6 @@ #include "isr_config.h" -#include "stdio.h" #include "isr.h" //isr.cжϺĵڶ̶Ϊ0벻ҪģʹCPU1жҲҪģҪCPU1жֻҪisr_config.h޸ĶӦĺ궨弴 @@ -28,6 +27,7 @@ uint16 time; IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); time++; printf("pit count: %d\n", time); @@ -36,18 +36,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -57,6 +60,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -70,6 +74,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -84,6 +89,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -100,6 +106,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -118,6 +125,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -127,29 +135,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -157,15 +171,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -173,13 +190,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/4-Encoder_Demo/Libraries/doc/version.txt b/Example/4-Encoder_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/4-Encoder_Demo/Libraries/doc/version.txt +++ b/Example/4-Encoder_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/4-Encoder_Demo/USER/isr.c b/Example/4-Encoder_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/4-Encoder_Demo/USER/isr.c +++ b/Example/4-Encoder_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/5-UART_Demo/Libraries/doc/version.txt b/Example/5-UART_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/5-UART_Demo/Libraries/doc/version.txt +++ b/Example/5-UART_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/5-UART_Demo/USER/isr.c b/Example/5-UART_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/5-UART_Demo/USER/isr.c +++ b/Example/5-UART_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/6-Printf_Demo/Libraries/doc/version.txt b/Example/6-Printf_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/6-Printf_Demo/Libraries/doc/version.txt +++ b/Example/6-Printf_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/6-Printf_Demo/USER/isr.c b/Example/6-Printf_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/6-Printf_Demo/USER/isr.c +++ b/Example/6-Printf_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt b/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/7-GPIO_Interrupt_Demo/USER/isr.c b/Example/7-GPIO_Interrupt_Demo/USER/isr.c index 6025fc9..d0c1a66 100644 --- a/Example/7-GPIO_Interrupt_Demo/USER/isr.c +++ b/Example/7-GPIO_Interrupt_Demo/USER/isr.c @@ -19,31 +19,36 @@ #include "isr_config.h" -#include "stdio.h" #include "isr.h" +//isr.cжϺĵڶ̶Ϊ0벻ҪģʹCPU1жҲҪģҪCPU1жֻҪisr_config.h޸ĶӦĺ궨弴 + //PITжϺ ʾ -IFX_INTERRUPT(cc60_pit_ch0_isr, CCU6_0_CH0_INT_SERVICE, CCU6_0_CH0_ISR_PRIORITY) +IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } -IFX_INTERRUPT(cc60_pit_ch1_isr, CCU6_0_CH1_INT_SERVICE, CCU6_0_CH1_ISR_PRIORITY) +IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } -IFX_INTERRUPT(cc61_pit_ch0_isr, CCU6_1_CH0_INT_SERVICE, CCU6_1_CH0_ISR_PRIORITY) +IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } -IFX_INTERRUPT(cc61_pit_ch1_isr, CCU6_1_CH1_INT_SERVICE, CCU6_1_CH1_ISR_PRIORITY) +IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -53,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, CCU6_1_CH1_INT_SERVICE, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, ERU_CH0_CH4_INT_SERVICE, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -68,6 +74,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, ERU_CH0_CH4_INT_SERVICE, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, ERU_CH1_CH5_INT_SERVICE, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -82,8 +89,9 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, ERU_CH1_CH5_INT_SERVICE, ERU_CH1_CH5_INT_PRIO) } //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ -//IFX_INTERRUPT(eru_ch2_ch6_isr, ERU_CH2_CH6_INT_SERVICE, ERU_CH2_CH6_INT_PRIO) +//IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -98,8 +106,9 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, ERU_CH1_CH5_INT_SERVICE, ERU_CH1_CH5_INT_PRIO) -IFX_INTERRUPT(eru_ch3_ch7_isr, ERU_CH3_CH7_INT_SERVICE, ERU_CH3_CH7_INT_PRIO) +IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -116,8 +125,9 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, ERU_CH3_CH7_INT_SERVICE, ERU_CH3_CH7_INT_PRIO) -IFX_INTERRUPT(dma_ch5_isr, ERU_DMA_INT_SERVICE, ERU_DMA_INT_PRIO) +IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -125,61 +135,73 @@ IFX_INTERRUPT(dma_ch5_isr, ERU_DMA_INT_SERVICE, ERU_DMA_INT_PRIO) //жϺ ʾ -IFX_INTERRUPT(uart0_tx_isr, UART0_INT_SERVICE, UART0_TX_INT_PRIO) +IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } -IFX_INTERRUPT(uart0_rx_isr, UART0_INT_SERVICE, UART0_RX_INT_PRIO) +IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } -IFX_INTERRUPT(uart0_er_isr, UART0_INT_SERVICE, UART0_ER_INT_PRIO) +IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô -IFX_INTERRUPT(uart1_tx_isr, UART1_INT_SERVICE, UART1_TX_INT_PRIO) +IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } -IFX_INTERRUPT(uart1_rx_isr, UART1_INT_SERVICE, UART1_RX_INT_PRIO) +IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } -IFX_INTERRUPT(uart1_er_isr, UART1_INT_SERVICE, UART1_ER_INT_PRIO) +IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } //2Ĭӵתģ -IFX_INTERRUPT(uart2_tx_isr, UART2_INT_SERVICE, UART2_TX_INT_PRIO) +IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } -IFX_INTERRUPT(uart2_rx_isr, UART2_INT_SERVICE, UART2_RX_INT_PRIO) +IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } -IFX_INTERRUPT(uart2_er_isr, UART2_INT_SERVICE, UART2_ER_INT_PRIO) +IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } -IFX_INTERRUPT(uart3_tx_isr, UART3_INT_SERVICE, UART3_TX_INT_PRIO) +IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } -IFX_INTERRUPT(uart3_rx_isr, UART3_INT_SERVICE, UART3_RX_INT_PRIO) +IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } -IFX_INTERRUPT(uart3_er_isr, UART3_INT_SERVICE, UART3_ER_INT_PRIO) +IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/8-EEPROM_Demo/Libraries/doc/version.txt b/Example/8-EEPROM_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/8-EEPROM_Demo/Libraries/doc/version.txt +++ b/Example/8-EEPROM_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/8-EEPROM_Demo/USER/isr.c b/Example/8-EEPROM_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/8-EEPROM_Demo/USER/isr.c +++ b/Example/8-EEPROM_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Example/9-PWM_Demo/Libraries/doc/version.txt b/Example/9-PWM_Demo/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Example/9-PWM_Demo/Libraries/doc/version.txt +++ b/Example/9-PWM_Demo/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eeprom.c b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eeprom.c index a4e1792..8e5cddd 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eeprom.c +++ b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eeprom.c @@ -49,7 +49,7 @@ uint8 flash_check(uint32 sector_num, uint32 page_num) // @param sector_num Ҫд Χ0-11 // @return void // @since v1.0 -// Sample usage: flash_erase_sector(0); +// Sample usage: eeprom_erase_sector(0); //------------------------------------------------------------------------------------------------------------------- void eeprom_erase_sector(uint32 sector_num) { diff --git a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Example/9-PWM_Demo/USER/Cpu0_Main.c b/Example/9-PWM_Demo/USER/Cpu0_Main.c index 2b58f04..f3fd2e7 100644 --- a/Example/9-PWM_Demo/USER/Cpu0_Main.c +++ b/Example/9-PWM_Demo/USER/Cpu0_Main.c @@ -21,7 +21,6 @@ #include "headfile.h" #pragma section all "cpu0_dsram" -uint16 adc_result; int core0_main(void) { @@ -50,4 +49,4 @@ int core0_main(void) } } -#pragma section all restore \ No newline at end of file +#pragma section all restore diff --git a/Example/9-PWM_Demo/USER/isr.c b/Example/9-PWM_Demo/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Example/9-PWM_Demo/USER/isr.c +++ b/Example/9-PWM_Demo/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Seekfree_TC264_Opensource_Library/.cproject b/Seekfree_TC264_Opensource_Library/.cproject index 311d388..80c5022 100644 --- a/Seekfree_TC264_Opensource_Library/.cproject +++ b/Seekfree_TC264_Opensource_Library/.cproject @@ -191,11 +191,7 @@ - TASKING VX-toolset for TriCore: control program v6.3r1 Build 19041558 - TASKING VX-toolset for TriCore: object linker v6.3r1 Build 19041558 - TASKING VX-toolset for TriCore: assembler v6.3r1 Build 19041558 TASKING program builder v6.3r1 Build 19041558 - TASKING VX-toolset for TriCore: C compiler v6.3r1 Build 19041558 diff --git a/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt b/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt index 1fdbd92..a6f7958 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt +++ b/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt @@ -64,4 +64,13 @@ V1.0.8 ޸CCU61 ͨ1жô ޸CCU6ߵԵʱʱԶֹͣߵʱжϵ CCU6pit_closepit_startڿƶʱĿʼֹͣ - CCU6pit_disable_interruptpit_enable_interruptڿжϿ \ No newline at end of file + CCU6pit_disable_interruptpit_enable_interruptڿжϿ + +V1.0.9 + ޸RDA5807ļҪ֤ϵ1SڲFMģ + +V1.1.0 + ISRļڵжϺȫenableInterrupts(); ʵжǶ׵Ĺ + RDA5807ȡRSSIܺ + DMAӴõıERU_DMA_INT_SERVICEŵӦCPU + \ No newline at end of file diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_eru_dma.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_eru_dma.c index 86c0158..9bfc82f 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_eru_dma.c +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_eru_dma.c @@ -31,9 +31,18 @@ typedef struct IfxDma_Dma_Channel channel; //DMAͨ }DMA_LINK; - +#if(0 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu0_dsram" DMA_LINK dma_link_list; +#elif(1 == ERU_DMA_INT_SERVICE) +#pragma section all "cpu1_dsram" +DMA_LINK dma_link_list; + +#endif +#pragma section all restore + + //------------------------------------------------------------------------------------------------------------------- // @brief erudmaʼ // @param dma_ch ѡDMAͨ diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.c index f56a41a..ab0356a 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.c +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.c @@ -50,7 +50,7 @@ uint8 IIC_num; // -static uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 +uint16 simiic_delay_time = SIMIIC_DELAY_TIME; //ICMȴӦΪ20 //------------------------------------------------------------------------------------------------------------------- diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.h b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.h index 6a9c1e3..1a0c4e2 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.h +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_IIC.h @@ -41,13 +41,13 @@ #define SIMIIC_DELAY_TIME 20 -typedef enum IIC //DACģ +typedef enum IIC //IICö { SIMIIC, SCCB } IIC_type; - +extern uint16 simiic_delay_time; //ICMȴӦΪ20 void simiic_delay_set(uint16 time); void simiic_start(void); diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c index a6f9a29..e1f7aca 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c @@ -357,7 +357,6 @@ void mt9v03x_dma(void) mt9v03x_dma_int_num = 0; mt9v03x_finish_flag = 1;//һͼӲɼʼɼʱ3.8MS(50FPS188*120ֱ) dma_stop(MT9V03X_DMA_CH); - } } diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c index 1640b41..3c44e3e 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.c @@ -43,7 +43,7 @@ #define FM_ADDRESS 0x20>>1 uint8 rda5807_config_reg[] = { - 0xc1, 0x03, // Register 0x2 + 0xc0, 0x03, // Register 0x2 0x00, 0x00, // Register 0x3 0x0a, 0x00, // Register 0x4 0x88, 0x0f, // Register 0x5 @@ -63,6 +63,12 @@ uint8 rda5807_config_reg[] = { void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) { uint8 i; + + uint16 temp_delay_time = 0; + + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x00); //ַдλ @@ -70,6 +76,8 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) send_ch(data[i]); //Ҫд simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -84,6 +92,11 @@ void rad5807m_simiic_write(uint8 dev_add, uint8 data[], uint8 num) //------------------------------------------------------------------------------------------------------------------- void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) { + + uint16 temp_delay_time = 0; + temp_delay_time = simiic_delay_time; + simiic_delay_set(RAD5807_DELAY_TIME);//ģIICʱΪĬʽϸ + simiic_start(); send_ch( (dev_add<<1) | 0x01); //ַӶλ @@ -96,6 +109,8 @@ void rda5807m_simiic_read(uint8 dev_add,uint8 *dat_add,uint8 num) *dat_add = read_ch(no_ack); //ȡ simiic_stop(); + + simiic_delay_set(temp_delay_time); //ԭģIICĬ } @@ -176,7 +191,22 @@ void rda5807_read_id(void) rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); } +//------------------------------------------------------------------------------------------------------------------- +// @brief rda5807ȡRSSI(źǿ) +// @param NULL +// @return void +// @since v1.0 +// Sample usage: +//------------------------------------------------------------------------------------------------------------------- +uint8 rda5807_read_rssi(void) +{ + uint8 rssi; + rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,3); + rssi = rda5807_read_reg[2] >> 1; + + return rssi; +} //------------------------------------------------------------------------------------------------------------------- // @brief rda5807ʼ @@ -192,19 +222,20 @@ void rda5807_init(float freq) //iicʼ simiic_init(); - simiic_delay_set(100);//ģIICʱΪĬʽϸ - //λ - rad5807m_simiic_write(FM_ADDRESS,dat,2); - systick_delay_ms(STM0, 50); + systick_delay_ms(STM0, 1000);//Ҫ֤ϵ1Sڲ FMģ while(rda5807_read_reg[8] != 0x58) { + //λ + rad5807m_simiic_write(FM_ADDRESS,dat,2); + systick_delay_ms(STM0, 10); //ȡĴԼ졣 rda5807m_simiic_read(FM_ADDRESS,rda5807_read_reg,10); - systick_delay_ms(STM0, 50); //һֱ鿴SCLSDAǷӺá - //ҪSEEKFREE_IIC.hļеSIMIIC_DELAY_TIMEֵ60 + //ҲԳ ʵ5807.hļеRAD5807_DELAY_TIME궨ֵ + //SDA SCLûд裨ŶԳ޸ĵײļ + //gpio_initеIfxPort_PadDriver_cmosAutomotiveSpeed1ΪIfxPort_PadDriver_cmosAutomotiveSpeed4 } // @@ -212,7 +243,7 @@ void rda5807_init(float freq) //Ƶ rda5807_set_channel(freq); - simiic_delay_set(SIMIIC_DELAY_TIME);//ԭģIICĬ + } diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h index 08801d0..9cfc01e 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_RDA5807.h @@ -40,8 +40,7 @@ - - +#define RAD5807_DELAY_TIME 200 void rda5807_init(float freq); @@ -49,6 +48,7 @@ void rda5807_set_transimt(void); void rda5807_set_idle(void); void rda5807_set_channel(float freq); void rda5807_channel_config(uint16 reg_chn); +uint8 rda5807_read_rssi(void); #endif diff --git a/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c b/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c index 3c292a7..3e33cd7 100644 --- a/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c +++ b/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c @@ -28,17 +28,20 @@ //ȻҲĴҵC/C++ Compiler->Optimization->Optimization levelŻȼ //һĬ½Ĺ̶ĬϿ2Ż˴ҲΪ2Ż - +//TCϵĬDz֧жǶ׵ģϣ֧жǶҪжʹenableInterrupts();жǶ +//򵥵˵ʵϽжϺTCϵеӲԶdisableInterrupts();ܾӦκεжϣΪҪԼֶenableInterrupts();жϵӦ int core0_main(void) { get_clk();//ȡʱƵ ر + //ûڴ˴øֳʼ enableInterrupts(); while (TRUE) { //ûڴ˴д + } } diff --git a/Seekfree_TC264_Opensource_Library/USER/Cpu1_Main.c b/Seekfree_TC264_Opensource_Library/USER/Cpu1_Main.c index 8e7e770..ca22406 100644 --- a/Seekfree_TC264_Opensource_Library/USER/Cpu1_Main.c +++ b/Seekfree_TC264_Opensource_Library/USER/Cpu1_Main.c @@ -33,7 +33,6 @@ void core1_main(void) while (TRUE) { //ûڴ˴д - } } diff --git a/Seekfree_TC264_Opensource_Library/USER/isr.c b/Seekfree_TC264_Opensource_Library/USER/isr.c index bc0dca7..490fd1f 100644 --- a/Seekfree_TC264_Opensource_Library/USER/isr.c +++ b/Seekfree_TC264_Opensource_Library/USER/isr.c @@ -26,6 +26,7 @@ //PITжϺ ʾ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH0); } @@ -33,18 +34,21 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY) IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_0, PIT_CH1); } IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH0); } IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) { + enableInterrupts();//жǶ PIT_CLEAR_FLAG(CCU6_1, PIT_CH1); } @@ -54,6 +58,7 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY) IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//ͨ0ж { CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7); @@ -67,6 +72,7 @@ IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO) IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//ͨ1ж { CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8); @@ -81,6 +87,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) //ͷpclkĬռ 2ͨڴDMAﲻٶжϺ //IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO) //{ +// enableInterrupts();//жǶ // if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//ͨ2ж // { // CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4); @@ -97,6 +104,7 @@ IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO) IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) { + enableInterrupts();//жǶ if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//ͨ3ж { CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0); @@ -115,6 +123,7 @@ IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO) IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) { + enableInterrupts();//жǶ if (1 == camera_type) mt9v03x_dma(); else if (3 == camera_type) ov7725_dma(); @@ -124,29 +133,35 @@ IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO) //жϺ ʾ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart0_handle); } IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart0_handle); } IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart0_handle); } //1Ĭӵͷô IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart1_handle); } IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart1_handle); mt9v03x_uart_callback(); } IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart1_handle); } @@ -154,15 +169,18 @@ IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO) //2Ĭӵתģ IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart2_handle); } IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart2_handle); wireless_uart_callback(); } IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart2_handle); } @@ -170,13 +188,16 @@ IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO) IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrTransmit(&uart3_handle); } IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrReceive(&uart3_handle); } IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO) { + enableInterrupts();//жǶ IfxAsclin_Asc_isrError(&uart3_handle); } diff --git a/Seekfree_TC264_Opensource_Library/尽量不要使用的引脚.txt b/Seekfree_TC264_Opensource_Library/尽量不要使用的引脚.txt new file mode 100644 index 0000000..ca712ca --- /dev/null +++ b/Seekfree_TC264_Opensource_Library/尽量不要使用的引脚.txt @@ -0,0 +1,10 @@ + +Ҫʹţbootţʹ׵µƬ޷⣬ +˽ҾҪʹá +P14.2 +P14.3 +P14.4 +P14.5 +P14.6 +P10.5 +P10.6 \ No newline at end of file diff --git a/Seekfree_TC264_Opensource_Library/推荐IO分配.txt b/Seekfree_TC264_Opensource_Library/推荐IO分配.txt index befac41..16df2d5 100644 --- a/Seekfree_TC264_Opensource_Library/推荐IO分配.txt +++ b/Seekfree_TC264_Opensource_Library/推荐IO分配.txt @@ -33,4 +33,15 @@ TFT DC 15_0 SPI2 - P33_9 \ No newline at end of file + P33_9 + + +Ҫʹţbootţʹ׵µƬ޷⣬ +˽ҾҪʹá +P14_2 +P14_3 +P14_4 +P14_5 +P14_6 +P10_5 +P10_6 \ No newline at end of file