mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-03 19:32:55 +00:00
V1.0.8
修复CCU61 通道1中断设置错误的问题 修复CCU6在线调试的时候定时器不能自动停止,导致在线调试时持续进中断的问题 对CCU6增加pit_close与pit_start函数用于控制定时器的开始与停止 对CCU6增加pit_disable_interrupt与pit_enable_interrupt函数用于控制中断开关
This commit is contained in:
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
</option>
|
||||
<option id="com.tasking.ctc.cc.noTaskingSfr.31909688" name="Automatic inclusion of '.sfr' file" superClass="com.tasking.ctc.cc.noTaskingSfr" value="false" valueType="boolean"/>
|
||||
<option id="com.tasking.ctc.cc.optimize.775309643" name="Optimization level:" superClass="com.tasking.ctc.cc.optimize" value="com.tasking.ctc.cc.optimize.0" valueType="enumerated"/>
|
||||
<option id="com.tasking.ctc.cc.tradeoff.53559744" name="Trade-off between speed and size:" superClass="com.tasking.ctc.cc.tradeoff" value="com.tasking.ctc.cc.tradeoff.0" valueType="enumerated"/>
|
||||
<option id="com.tasking.ctc.cc.tradeoff.53559744" name="Trade-off between speed and size:" superClass="com.tasking.ctc.cc.tradeoff" value="com.tasking.ctc.cc.tradeoff.4" valueType="enumerated"/>
|
||||
<option id="com.tasking.ctc.cc.definedSymbols.1587155176" name="Defined symbols" superClass="com.tasking.ctc.cc.definedSymbols"/>
|
||||
<option id="com.tasking.ctc.cc.nowarning.1842866041" name="Suppress C compiler warnings" superClass="com.tasking.ctc.cc.nowarning" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="W557"/>
|
||||
|
||||
@@ -59,4 +59,9 @@ V1.0.7
|
||||
<09><EFBFBD>ʹ<EFBFBD><CAB9>systick_getval<61><6C>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1>䳬<EFBFBD><E4B3AC>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣
|
||||
<09>Բ<EFBFBD><D4B2>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma warning<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
|
||||
<09><EFBFBD>1.8<EFBFBD><EFBFBD>TFT<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ֵĴ<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
V1.0.8
|
||||
<09><EFBFBD>CCU61 ͨ<><CDA8>1<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>CCU6<55><36><EFBFBD>ߵ<EFBFBD><DFB5>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_close<73><65>pit_start<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ֹͣ
|
||||
<09><>CCU6<55><36><EFBFBD><EFBFBD>pit_disable_interrupt<70><74>pit_enable_interrupt<70><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>жϿ<D0B6><CFBF><EFBFBD>
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
uint8 camera_type; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ͺ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD>ͫ<EFBFBD><CDAB><EFBFBD><EFBFBD>δ֧<CEB4>֣<EFBFBD>3<EFBFBD><33>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
||||
|
||||
uint32 te;
|
||||
|
||||
App_Cpu0 g_AppCpu0; //Ƶ<><C6B5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
void get_clk(void)
|
||||
@@ -41,5 +40,4 @@ void get_clk(void)
|
||||
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
|
||||
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
|
||||
|
||||
te = IfxScuCcu_getSriFrequency();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
volatile Ifx_CCU6 *module;
|
||||
uint64 timer_input_clk;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
IfxCcu6_TimerId timer_id;
|
||||
IfxCcu6_Timer_Config timerConfig;
|
||||
uint32 timer_period;
|
||||
|
||||
@@ -90,15 +89,15 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timerConfig.interrupt1.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt1.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
timerConfig.interrupt2.typeOfService = CCU6_1_CH1_INT_SERVICE;
|
||||
timerConfig.interrupt2.priority = CCU6_1_CH1_ISR_PRIORITY;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if(PIT_CH0 == pit_ch)
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t12;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t12;
|
||||
timerConfig.interrupt1.source = IfxCcu6_InterruptSource_t12PeriodMatch;
|
||||
timerConfig.interrupt1.serviceRequest = IfxCcu6_ServiceRequest_1;
|
||||
timerConfig.base.t12Period = timer_period;
|
||||
@@ -107,17 +106,13 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_id = IfxCcu6_TimerId_t13;
|
||||
timerConfig.timer = IfxCcu6_TimerId_t13;
|
||||
timerConfig.interrupt2.source = IfxCcu6_InterruptSource_t13PeriodMatch;
|
||||
timerConfig.interrupt2.serviceRequest = IfxCcu6_ServiceRequest_2;
|
||||
timerConfig.base.t13Period = timer_period;
|
||||
timerConfig.base.t13Frequency = (float)timer_input_clk;
|
||||
timerConfig.clock.t13countingInputMode = IfxCcu6_CountingInputMode_internal;
|
||||
}
|
||||
|
||||
|
||||
timerConfig.timer = timer_id;
|
||||
|
||||
timerConfig.timer12.counterValue = 0;
|
||||
timerConfig.timer13.counterValue = 0;
|
||||
timerConfig.trigger.t13InSyncWithT12 = FALSE;
|
||||
@@ -126,5 +121,78 @@ void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time)
|
||||
|
||||
restoreInterrupts(interrupt_state);
|
||||
|
||||
IfxCcu6_setSuspendMode(module, IfxCcu6_SuspendMode_hard);
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69>ر<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_close(CCU6_0, PIT_CH0); //<2F>ر<EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_stop(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief pit<69><74>ʼ
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_start(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
IfxCcu6_Timer g_Ccu6Timer;
|
||||
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
|
||||
g_Ccu6Timer.ccu6 = module;
|
||||
g_Ccu6Timer.timer = (IfxCcu6_TimerId)(pit_ch);
|
||||
|
||||
IfxCcu6_Timer_start(&g_Ccu6Timer);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><>ֹpit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_disable_interrupt(CCU6_0, PIT_CH0); //<2F><>ֹCCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_disableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief ʹ<><CAB9>pit<69>ж<EFBFBD>
|
||||
// @param ccu6n ѡ<><D1A1>CCU6ģ<36><C4A3>(CCU6_0<5F><30>CCU6_1)
|
||||
// @param pit_ch ѡ<><D1A1>ͨ<EFBFBD><CDA8>(PIT_CH0<48><30>PIT_CH1)
|
||||
// @return void
|
||||
// @note
|
||||
// Sample usage: pit_enable_interrupt(CCU6_0, PIT_CH0); //<2F><><EFBFBD><EFBFBD>CCU60 ͨ<><CDA8>0<EFBFBD><30><EFBFBD>ж<EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch)
|
||||
{
|
||||
volatile Ifx_CCU6 *module;
|
||||
module = IfxCcu6_getAddress((IfxCcu6_Index)ccu6n);
|
||||
IfxCcu6_enableInterrupt(module, pit_ch * 2 + 7);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ typedef enum //ö
|
||||
|
||||
|
||||
void pit_init(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch, uint32 time);
|
||||
|
||||
void pit_close(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_start(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_disable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
void pit_enable_interrupt(CCU6N_enum ccu6n, CCU6_CHN_enum pit_ch);
|
||||
|
||||
|
||||
//------------------------------------<2D><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PIT<49>ж<EFBFBD>------------------------------------
|
||||
|
||||
@@ -196,7 +196,7 @@ void rda5807_init(float freq)
|
||||
//<2F><>λ
|
||||
rad5807m_simiic_write(FM_ADDRESS,dat,2);
|
||||
|
||||
systick_delay_ms(STM0, 600);
|
||||
systick_delay_ms(STM0, 50);
|
||||
|
||||
while(rda5807_read_reg[8] != 0x58)
|
||||
{
|
||||
|
||||
@@ -34,14 +34,11 @@ int core0_main(void)
|
||||
get_clk();//<2F><>ȡʱ<C8A1><CAB1>Ƶ<EFBFBD><C6B5> <20><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
|
||||
|
||||
//<2F>û<EFBFBD><C3BB>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ø<EFBFBD><C3B8>ֳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
enableInterrupts();
|
||||
gpio_init(P20_9, GPO, 0, PUSHPULL);
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
//<2F>û<EFBFBD><C3BB>ڴ˴<DAB4><CBB4><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<09><><EFBFBD>ݿڣ<DDBF>00_0 00_1 00_2 00_3 00_4 00_5 00_6 00_7
|
||||
<09><><EFBFBD>ô<EFBFBD><C3B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͷRX<52><58>02_2 <20><><EFBFBD><EFBFBD>ͷTX<54><58>02_3
|
||||
VSY<53><59>02_0
|
||||
HREF<45><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
PCLK<4C><4B>02_1
|
||||
|
||||
<EFBFBD><EFBFBD>·<EFBFBD>˷<EFBFBD> A0 A1 A2 A3 <20><>
|
||||
@@ -25,9 +26,9 @@ ICM20602
|
||||
TFT<EFBFBD><EFBFBD>Ļ
|
||||
CLK 15_3
|
||||
MOSI 15_5
|
||||
MISO 15_4
|
||||
MISO 15_4 //ʵ<><CAB5><EFBFBD><EFBFBD>TFTû<54><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռλ<D5BC><CEBB><EFBFBD><EFBFBD>
|
||||
CS0 15_2
|
||||
BL 15_4
|
||||
BL 15_4 //<2F><><EFBFBD>ÿ<EFBFBD><C3BF>Ʊ<EFBFBD><C6B1><EFBFBD>
|
||||
REST 15_1
|
||||
DC 15_0
|
||||
SPI2
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user