From 2a5dfba0279efed98bb0c600897ef4e75c0f5137 Mon Sep 17 00:00:00 2001 From: SEEKFREE_Kang Date: Mon, 13 Apr 2020 18:36:11 +0800 Subject: [PATCH] =?UTF-8?q?V1.0.1=20=20=E5=AF=B9=E6=80=BB=E9=92=BB?= =?UTF-8?q?=E9=A3=8E=E6=91=84=E5=83=8F=E5=A4=B4=E7=9A=84=E5=9C=BA=E4=B8=AD?= =?UTF-8?q?=E6=96=AD=E8=BF=9B=E8=A1=8C=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=A0=87=E5=BF=97=E4=BD=8D=E4=B8=BA0=E6=89=8D?= =?UTF-8?q?=E9=87=87=E9=9B=86=E4=B8=8B=E4=B8=80=E5=B9=85=E5=9B=BE=E5=83=8F?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E5=87=BA=E7=8E=B0=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E5=86=B2=E7=AA=81=20=20=E4=BF=AE=E6=94=B9SPI=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF=EF=BC=8C=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E4=BA=86=E5=9B=BA=E5=AE=9A=E7=9A=84SPI2=E5=9F=BA?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=20=20=E4=BF=AE=E5=A4=8DSTM=E4=B8=AD=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BD=BF=E7=94=A8STM1=E7=9A=84=E9=97=AE=E9=A2=98=20?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8Dgtm=20pwm=E4=B8=AD=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E5=8D=A0=E7=A9=BA=E6=AF=94=E5=8F=AA=E6=9C=89GTM=5FATOM0=5FPWM?= =?UTF-8?q?=5FDUTY=5FMAX=E8=AE=BE=E7=BD=AE=E6=9C=89=E6=95=88=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Example/1-ADC_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- .../Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/11-Systick_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- .../12-Dual_Core_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/2-LED_Blink_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/3-PIT_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/4-Encoder_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/5-UART_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/6-Printf_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- .../Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/8-EEPROM_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Example/9-PWM_Demo/Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Seekfree_TC264_Opensource_Library/.cproject | 4 ---- .../Libraries/doc/version.txt | 9 ++++++++- .../Libraries/seekfree_libraries/zf_gtm_pwm.c | 10 +++++++++- .../Libraries/seekfree_libraries/zf_spi.c | 14 +++++++------- .../Libraries/seekfree_libraries/zf_stm_systick.c | 2 +- .../seekfree_peripheral/SEEKFREE_MT9V03X.c | 8 ++++++-- Seekfree_TC264_Opensource_Library/USER/Cpu0_Main.c | 2 -- 67 files changed, 403 insertions(+), 162 deletions(-) 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)