diff --git a/Example/1-ADC_Demo/Libraries/doc/version.txt b/Example/1-ADC_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/1-ADC_Demo/Libraries/doc/version.txt
+++ b/Example/1-ADC_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/1-ADC_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/1-ADC_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt b/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt
+++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/10-Interrupt_Priority_Set_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/11-Systick_Demo/Libraries/doc/version.txt b/Example/11-Systick_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/11-Systick_Demo/Libraries/doc/version.txt
+++ b/Example/11-Systick_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/11-Systick_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/11-Systick_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/12-Dual_Core_Demo/Libraries/doc/version.txt b/Example/12-Dual_Core_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/12-Dual_Core_Demo/Libraries/doc/version.txt
+++ b/Example/12-Dual_Core_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/12-Dual_Core_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/2-LED_Blink_Demo/Libraries/doc/version.txt b/Example/2-LED_Blink_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/2-LED_Blink_Demo/Libraries/doc/version.txt
+++ b/Example/2-LED_Blink_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/2-LED_Blink_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/3-PIT_Demo/Libraries/doc/version.txt b/Example/3-PIT_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/3-PIT_Demo/Libraries/doc/version.txt
+++ b/Example/3-PIT_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/3-PIT_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/3-PIT_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/4-Encoder_Demo/Libraries/doc/version.txt b/Example/4-Encoder_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/4-Encoder_Demo/Libraries/doc/version.txt
+++ b/Example/4-Encoder_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/4-Encoder_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/4-Encoder_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/5-UART_Demo/Libraries/doc/version.txt b/Example/5-UART_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/5-UART_Demo/Libraries/doc/version.txt
+++ b/Example/5-UART_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/5-UART_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/5-UART_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/6-Printf_Demo/Libraries/doc/version.txt b/Example/6-Printf_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/6-Printf_Demo/Libraries/doc/version.txt
+++ b/Example/6-Printf_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/6-Printf_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/6-Printf_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt b/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt
+++ b/Example/7-GPIO_Interrupt_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/7-GPIO_Interrupt_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/8-EEPROM_Demo/Libraries/doc/version.txt b/Example/8-EEPROM_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/8-EEPROM_Demo/Libraries/doc/version.txt
+++ b/Example/8-EEPROM_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/8-EEPROM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/8-EEPROM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Example/9-PWM_Demo/Libraries/doc/version.txt b/Example/9-PWM_Demo/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Example/9-PWM_Demo/Libraries/doc/version.txt
+++ b/Example/9-PWM_Demo/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_spi.c b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_spi.c
+++ b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Example/9-PWM_Demo/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Example/9-PWM_Demo/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Seekfree_TC264_Opensource_Library/.cproject b/Seekfree_TC264_Opensource_Library/.cproject
index 0a9696e..0952b7b 100644
--- a/Seekfree_TC264_Opensource_Library/.cproject
+++ b/Seekfree_TC264_Opensource_Library/.cproject
@@ -267,11 +267,7 @@
- TASKING VX-toolset for TriCore: control program v6.3r1 Build 19041558
- TASKING VX-toolset for TriCore: object linker v6.3r1 Build 19041558
- TASKING VX-toolset for TriCore: assembler v6.3r1 Build 19041558
TASKING program builder v6.3r1 Build 19041558
- TASKING VX-toolset for TriCore: C compiler v6.3r1 Build 19041558
diff --git a/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt b/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt
index 6d829bd..b85cd50 100644
--- a/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt
+++ b/Seekfree_TC264_Opensource_Library/Libraries/doc/version.txt
@@ -1,2 +1,9 @@
V1.0.0
- 初始版本
\ No newline at end of file
+ 初始版本
+
+
+V1.0.1
+ 对总钻风摄像头的场中断进行修改,判断标志位为0才采集下一幅图像,避免出现访问冲突
+ 修改SPI初始化中的错误,引用了固定的SPI2基地址
+ 修复STM中无法使用STM1的问题
+ 修复gtm pwm中最大占空比只有GTM_ATOM0_PWM_DUTY_MAX设置有效的问题
\ No newline at end of file
diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_gtm_pwm.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_gtm_pwm.c
index 881b3c3..7b079c9 100644
--- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_gtm_pwm.c
+++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_gtm_pwm.c
@@ -281,7 +281,15 @@ void gtm_pwm_init(ATOM_PIN_enum pwmch, uint32 freq, uint32 duty)
g_atomConfig.synchronousUpdateEnabled = TRUE;
g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX);
- IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
+ switch(atom_channel->atom)
+ {
+ case 0: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM0_PWM_DUTY_MAX); break;
+ case 1: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM1_PWM_DUTY_MAX); break;
+ case 2: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM2_PWM_DUTY_MAX); break;
+ case 3: g_atomConfig.dutyCycle = (uint32)((uint64)duty * g_atomConfig.period / GTM_ATOM3_PWM_DUTY_MAX); break;
+ }
+
+ IfxGtm_Atom_Pwm_init(&g_atomDriver, &g_atomConfig);
IfxGtm_Atom_Pwm_start(&g_atomDriver, TRUE);
}
diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c
index 7ae3f99..4fdb826 100644
--- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c
+++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c
@@ -279,7 +279,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
moudle = IfxQspi_getAddress((IfxQspi_Index)spi_n);
- bacon.U = MODULE_QSPI2.BACON.U;
+ bacon.U = moudle->BACON.U;
bacon.B.DL = 7;
bacon.B.IDLE = 1;
@@ -300,11 +300,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
i = 0;
while(i < (len-1))
{
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
IfxQspi_write8(moudle, IfxQspi_ChannelId_0, modata, 1);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
modata++;
midata++;
i++;
@@ -314,11 +314,11 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
//发送最后一个数据
if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U);
IfxQspi_writeTransmitFifo(moudle, *modata);
- while(MODULE_QSPI2.STATUS.B.TXFIFOLEVEL != 0);
+ while(moudle->STATUS.B.TXFIFOLEVEL != 0);
- while(MODULE_QSPI2.STATUS.B.RXFIFOLEVEL == 0);
+ while(moudle->STATUS.B.RXFIFOLEVEL == 0);
if(NULL != midata) IfxQspi_read8(moudle,midata,1);
- else (void)MODULE_QSPI2.RXEXIT.U;
+ else (void)moudle->RXEXIT.U;
}
diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_stm_systick.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_stm_systick.c
index 4f98a4c..3c3ec77 100644
--- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_stm_systick.c
+++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_stm_systick.c
@@ -35,7 +35,7 @@ void systick_delay(STMN_enum stmn, uint32 time)
uint32 stm_clk;
stm_clk = IfxStm_getFrequency(IfxStm_getAddress((IfxStm_Index)stmn));
- IfxStm_waitTicks(&MODULE_STM0, (uint32)((uint64)stm_clk*time/1000000000));
+ IfxStm_waitTicks(IfxStm_getAddress((IfxStm_Index)stmn), (uint32)((uint64)stm_clk*time/1000000000));
}
diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
index dcca1e9..014b435 100644
--- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
+++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_peripheral/SEEKFREE_MT9V03X.c
@@ -325,8 +325,12 @@ void mt9v03x_vsync(void)
{
CLEAR_GPIO_FLAG(MT9V03X_VSYNC_PIN);
now_col = 0;
- DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
- dma_start(MT9V03X_DMA_CH);
+ if(!mt9v03x_finish_flag)//查看图像数组是否使用完毕,如果未使用完毕则不开始采集,避免出现访问冲突
+ {
+ DMA_SET_DESTINATION(MT9V03X_DMA_CH, (void *)&mt9v03x_image[0]);
+ dma_start(MT9V03X_DMA_CH);
+ }
+
}
diff --git a/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c b/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c
index 3231482..486ec0e 100644
--- a/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c
+++ b/Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c
@@ -27,8 +27,6 @@ int core0_main(void)
//用户在此处调用各种初始化函数等
-
-
enableInterrupts();
while (TRUE)