修复CCU61 通道1中断设置错误的问题
 修复CCU6在线调试的时候定时器不能自动停止,导致在线调试时持续进中断的问题
 对CCU6增加pit_close与pit_start函数用于控制定时器的开始与停止
 对CCU6增加pit_disable_interrupt与pit_enable_interrupt函数用于控制中断开关
This commit is contained in:
SEEKFREE_Kang
2020-05-20 15:37:14 +08:00
parent 1a9b17828e
commit c27bafde95
93 changed files with 1338 additions and 216 deletions

View File

@@ -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>

View File

@@ -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();
}

View File

@@ -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);
}

View File

@@ -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>------------------------------------

View File

@@ -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)
{

View File

@@ -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><>