1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693 |
- /* add user code begin Header */
- /**
- **************************************************************************
- * @file .c
- * @brief main interrupt service routines.
- **************************************************************************
- * Copyright notice & Disclaimer
- *
- * The software Board Support Package (BSP) that is made available to
- * download from Artery official website is the copyrighted work of Artery.
- * Artery authorizes customers to use, copy, and distribute the BSP
- * software and its related documentation for the purpose of design and
- * development in conjunction with Artery microcontrollers. Use of the
- * software is governed by this copyright notice and the following disclaimer.
- *
- * THIS SOFTWARE IS PROVIDED ON "AS IS" BASIS WITHOUT WARRANTIES,
- * GUARANTEES OR REPRESENTATIONS OF ANY KIND. ARTERY EXPRESSLY DISCLAIMS,
- * TO THE FULLEST EXTENT PERMITTED BY LAW, ALL EXPRESS, IMPLIED OR
- * STATUTORY OR OTHER WARRANTIES, GUARANTEES OR REPRESENTATIONS,
- * INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
- *
- **************************************************************************
- */
- /* add user code end Header */
- /* includes ------------------------------------------------------------------*/
- //#include "at32f421_int.h"
- /* private includes ----------------------------------------------------------*/
- /* add user code begin private includes */
- //#include "at32f421_wk_config.h"
- #include "TimeTask_Event.h"
- #include "syspar.h"
- #include "user.h"
- //#include "at32f421_adc.h"
- //#include "at32f421_tmr.h"
- #include "usart.h"
- #include "can.h"
- //#include "SEGGER_RTT.h"
- #include "bikelight.h"
- #include "UserGpio_Config.h"
- #include "ti_msp_dl_config.h"
- /* add user code end private includes */
- /* private typedef -----------------------------------------------------------*/
- /* add user code begin private typedef */
- /* add user code end private typedef */
- /* private define ------------------------------------------------------------*/
- /* add user code begin private define */
- /* add user code end private define */
- /* private macro -------------------------------------------------------------*/
- /* add user code begin private macro */
- /* add user code end private macro */
- /* private variables ---------------------------------------------------------*/
- /* add user code begin private variables */
- /* add user code end private variables */
- /* private function prototypes --------------------------------------------*/
- /* add user code begin function prototypes */
- /* add user code end function prototypes */
- /* private user code ---------------------------------------------------------*/
- /* add user code begin 0 */
- //__IO uint16_t adc1_ordinary_valuetab[5][7] = {0};
- __IO uint16_t adc1_preempt_valuetab[5][3] = {0};
- __IO uint16_t chanel_trans_complete_flag = 0;
- __IO uint16_t adc_trans_complete_flag = 0;
- __IO uint16_t preempt_conversion_count = 0;
-
- unsigned int BCnt; // Variable: speed control period tick
- unsigned int CCnt;
- unsigned int DCnt;
- unsigned int ECnt,FCnt,GCnt,CMPF,CLMPF;
- unsigned int CHMPF=0;
- unsigned int HALLACnt,HALLBCnt,HALLCCnt;
- unsigned int DAC_value;
- unsigned int SPEED_edgeCapture,TIPIN_edgeCapture;
- unsigned int HGcnt;
- //#define DAC12_REF_VOLTAGE_mV (3300)
- //#define DAC12_OUTPUT_VOLTAGE_mV (1650)
- volatile bool gCheckADC;
- unsigned int i = 0;
- #define RESULT_SIZE (10)
- uint16_t gAdcResult0[12]; //OPA0 OUTPUT
- //volatile uint16_t gAdcResult1[RESULT_SIZE]; // PA25 pcb temp
- //volatile uint16_t gAdcResult2[RESULT_SIZE];// PA24 motor temp
- //volatile uint16_t gAdcResult3[RESULT_SIZE]; // PB24 zhuanba
- //volatile uint16_t gAdcResult4[RESULT_SIZE];// PB20 bus current
- //volatile uint16_t gAdcResult5[RESULT_SIZE]; // PA14 BAT VOLTAGE
- //volatile uint16_t gAdcResult6[RESULT_SIZE]; //OPA1 OUTPUT
- //volatile uint16_t gAdcResult7[RESULT_SIZE]; //PB19 A1_6 Liju
-
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);
- // gAdcResult1[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_1);
- // gAdcResult2[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_2);
- // gAdcResult3[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_3);
- //
- // gAdcResult4[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_4);
- // gAdcResult5[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_5);
- //
- //
- // gAdcResult6[i] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_0);
- // DL_GPIO_clearPins(OUTPUT_CAN_STB_PORT, OUTPUT_CAN_STB_PIN);
- // gAdcResult7[i] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_1);
-
- /* add user code end 0 */
- /* external variables ---------------------------------------------------------*/
- /* add user code begin external variables */
- #if 0
- if(adc_interrupt_flag_get(ADC1, ADC_PCCE_FLAG) != RESET)
- {
- adc_flag_clear(ADC1, ADC_PCCE_FLAG);
- if(preempt_conversion_count < 5){
- adc1_preempt_valuetab[preempt_conversion_count][0] = adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_1);
- adc1_preempt_valuetab[preempt_conversion_count][1] = adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_2);
- adc1_preempt_valuetab[preempt_conversion_count][2] = adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_3);
- preempt_conversion_count++;
- }
- }
- if(adc_interrupt_flag_get(ADC1, ADC_CCE_FLAG) != RESET)
- {
- adc_flag_clear(ADC1, ADC_CCE_FLAG);
- if(chanel_trans_complete_flag < 7){
- adc1_ordinary_valuetab[adc_trans_complete_flag][chanel_trans_complete_flag++] = adc_ordinary_conversion_data_get(ADC1);
- }
- }
- #endif
- /* add user code end external variables */
- ///**
- // * @brief this function handles nmi exception.
- // * @param none
- // * @retval none
- // */
- //void NMI_Handler(void)
- //{
- // /* add user code begin NonMaskableInt_IRQ 0 */
- //
- // /* add user code end NonMaskableInt_IRQ 0 */
- //
- // /* add user code begin NonMaskableInt_IRQ 1 */
- //
- // /* add user code end NonMaskableInt_IRQ 1 */
- //}
- /**
- * @brief this function handles hard fault exception.
- * @param none
- * @retval none
- */
- void HardFault_Handler(void)
- {
- /* add user code begin HardFault_IRQ 0 */
- hw_voPWMOff();
- /* add user code end HardFault_IRQ 0 */
- /* go to infinite loop when hard fault exception occurs */
- while (1)
- {
- /* add user code begin W1_HardFault_IRQ 0 */
- /* add user code end W1_HardFault_IRQ 0 */
- }
- }
- ///**
- // * @brief this function handles memory manage exception.
- // * @param none
- // * @retval none
- // */
- //void MemManage_Handler(void)
- //{
- // /* add user code begin MemoryManagement_IRQ 0 */
- //
- // /* add user code end MemoryManagement_IRQ 0 */
- // /* go to infinite loop when memory manage exception occurs */
- // while (1)
- // {
- // /* add user code begin W1_MemoryManagement_IRQ 0 */
- //
- // /* add user code end W1_MemoryManagement_IRQ 0 */
- // }
- //}
- //
- ///**
- // * @brief this function handles bus fault exception.
- // * @param none
- // * @retval none
- // */
- //void BusFault_Handler(void)
- //{
- // /* add user code begin BusFault_IRQ 0 */
- //
- // /* add user code end BusFault_IRQ 0 */
- // /* go to infinite loop when bus fault exception occurs */
- // while (1)
- // {
- // /* add user code begin W1_BusFault_IRQ 0 */
- //
- // /* add user code end W1_BusFault_IRQ 0 */
- // }
- //}
- //
- ///**
- // * @brief this function handles usage fault exception.
- // * @param none
- // * @retval none
- // */
- //void UsageFault_Handler(void)
- //{
- // /* add user code begin UsageFault_IRQ 0 */
- //
- // /* add user code end UsageFault_IRQ 0 */
- // /* go to infinite loop when usage fault exception occurs */
- // while (1)
- // {
- // /* add user code begin W1_UsageFault_IRQ 0 */
- //
- // /* add user code end W1_UsageFault_IRQ 0 */
- // }
- //}
- //
- ///**
- // * @brief this function handles svcall exception.
- // * @param none
- // * @retval none
- // */
- //void SVC_Handler(void)
- //{
- // /* add user code begin SVCall_IRQ 0 */
- //
- // /* add user code end SVCall_IRQ 0 */
- // /* add user code begin SVCall_IRQ 1 */
- //
- // /* add user code end SVCall_IRQ 1 */
- //}
- //
- ///**
- // * @brief this function handles debug monitor exception.
- // * @param none
- // * @retval none
- // */
- //void DebugMon_Handler(void)
- //{
- // /* add user code begin DebugMonitor_IRQ 0 */
- //
- // /* add user code end DebugMonitor_IRQ 0 */
- // /* add user code begin DebugMonitor_IRQ 1 */
- //
- // /* add user code end DebugMonitor_IRQ 1 */
- //}
- //
- ///**
- // * @brief this function handles pendsv_handler exception.
- // * @param none
- // * @retval none
- // */
- //void PendSV_Handler(void)
- //{
- // /* add user code begin PendSV_IRQ 0 */
- //
- // /* add user code end PendSV_IRQ 0 */
- // /* add user code begin PendSV_IRQ 1 */
- //
- // /* add user code end PendSV_IRQ 1 */
- //}
- /**
- * @brief this function handles systick handler.
- * @param none
- * @retval none
- */
- void SysTick_Handler(void)
- {
- /* add user code begin SysTick_IRQ 0 */
- /* add user code end SysTick_IRQ 0 */
- /* add user code begin SysTick_IRQ 1 */
- //clas_ubSystickFlg = 1; // for TUV
- cp_ulSystickCnt++;
- /* Add your code below */
-
- /* 1ms and Timing Event */
- TimingTaskTimerServer();
- Event_1ms();
- /* TBT interrupt */
- tbt_voIsr();
- /* UART */
- // UART_voApplTimer();
- /* LED */
- // at32_led_toggle();
- // GPIOF->odt ^= GPIO_PINS_7;
- /* add user code end SysTick_IRQ 1 */
- }
- ///**
- // * @brief this function handles DMA1 Channel 1 handler.
- // * @param none
- // * @retval none
- // */
- //void DMA1_Channel1_IRQHandler(void)
- //{
- // /* add user code begin DMA1_Channel1_IRQ 0 */
- // if(dma_interrupt_flag_get(DMA1_FDT1_FLAG) != RESET)
- // {
- // // adc_enable(ADC1,FALSE);
- // dma_flag_clear(DMA1_FDT1_FLAG);
- // //dma_trans_complete_flag++;
- // }
- // /* add user code end DMA1_Channel1_IRQ 0 */
- // /* add user code begin DMA1_Channel1_IRQ 1 */
- //
- // /* add user code end DMA1_Channel1_IRQ 1 */
- //}
- /**
- * @brief this function handles ADC1 & Comparator handler.
- * @param none
- * @retval none
- */
- UWORD tmpSCir = 0;
- //void ADC12_0_INST_IRQHandler(void)
- //{
- // switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST)) {
- // case DL_ADC12_IIDX_MEM5_RESULT_LOADED:
- // gCheckADC = true;
- // DL_GPIO_setPins(OUTPUT_CAN_STB_PORT, OUTPUT_CAN_STB_PIN);
- //// DL_GPIO_togglePins(OUTPUT_CAN_STB_PORT, OUTPUT_CAN_STB_PIN);
- // delay_cycles(1000);
- // gAdcResult0[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);
- // gAdcResult1[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_1);
- // gAdcResult2[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_2);
- // gAdcResult3[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_3);
- //
- // gAdcResult4[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_4);
- // gAdcResult5[i] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_5);
- //
- //
- // gAdcResult6[i] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_0);
- // DL_GPIO_clearPins(OUTPUT_CAN_STB_PORT, OUTPUT_CAN_STB_PIN);
- // gAdcResult7[i] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_1);
- // DL_GPIO_clearPins(OUTPUT_CAN_STB_PORT, OUTPUT_CAN_STB_PIN);
- // i++;
- // if (i >= RESULT_SIZE) {
- // // __BKPT(0);
- // i = 0;
- // }
- // else{
- // ;/*No action required*/
- // }
- // break;
- // default:
- // break;
- // }
- //}
- void ADC12_0_INST_IRQHandler(void)//void ADC1_CMP_IRQHandler(void)
- {
- /* add user code begin ADC1_CMP_IRQ 0 */
- // if(adc_interrupt_flag_get(ADC1, ADC_CCE_FLAG) != RESET)
- // {
- // adc_flag_clear(ADC1, ADC_CCE_FLAG);
- // }
- // if(adc_interrupt_flag_get(ADC1, ADC_PCCE_FLAG) != RESET)
- // {
- // adc_flag_clear(ADC1, ADC_PCCE_FLAG);
- // //if(preempt_conversion_count < 5)
- // // {
- // adc1_preempt_valuetab[0][0] = adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_1);
- // adc1_preempt_valuetab[0][1] = adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_2);
- // adc1_preempt_valuetab[0][2] = adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_3);
- // // preempt_conversion_count++;
- // //}
- // }
- BCnt++;
- // DL_GPIO_togglePins(LED_PORT, LED_LED1_PIN);
- // DL_GPIO_togglePins(LED_PORT, LED_LED2_PIN);
- #if(SampleModelSelect == DOUBLERESISTANCE)
- if (DL_ADC12_getPendingInterrupt(ADC12_0_INST) &DL_ADC12_IIDX_MEM4_RESULT_LOADED)// if (adc_flag_get(ADC1,ADC_PCCE_FLAG)) //ADCx->SR & 0x04 娉ㄥ叆缁勪腑鏂爣蹇�
- {
- //
- // gAdcResult0[0] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);
- // gAdcResult0[1] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_1);
- // gAdcResult0[2] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_2);
- // gAdcResult0[3] =
- // DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_3);
- //
- //// gAdcResult0[4] =
- //// DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_4);
- // gAdcResult0[5] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_0);
- //
- //
- // gAdcResult0[6] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_1);
- //
- // gAdcResult0[7] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_2);
- // gAdcResult0[8] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_3);
- // gAdcResult0[9] =
- // DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_4);
- // GPIOC->odt ^= GPIO_PINS_13;
- // GPIOC->odt ^= GPIO_PINS_15;
- // IO_PC10_TEST_ENABLE; //PC10鎵撳嵃鎸囩ず
- // if( (((uint8_t)DL_Timer_getTimerCount(MOTOR_PWM_INST)) & 0x10) ==0)// if( (((uint8_t)TMR1->ctrl1) & 0x10) ==0)// //TIME1 鍚戜笂璁℃暟璇诲彇鐩哥數娴丄D鍊�
- {
- // GPIOC->odt ^= GPIO_PINS_13;
- // if(hw_blPWMOnFlg == TRUE)
- {
- #if((IPM_POWER_SEL == IPM_POWER_250W_6G) ||(IPM_POWER_SEL ==IPM_POWER_350W_6G))
- adc_uwRdsonUReg =RDSON_U_REG();// DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);//
- adc_uwRdsonVReg =RDSON_V_REG();//
- #else
- // adc_uwRdsonUReg =RDSON_U_REG();// DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);//
- adc_uwRdsonVReg = RDSON_V_REG();//
- adc_uwRdsonWReg = RDSON_W_REG();//
- #endif
- }
- // else
- // {
- // adc_uwRdsonUReg =adc_stCof.uwIaOffset;//
- // adc_uwRdsonVReg =adc_stCof.uwIbOffset;//
- // adc_uwRdsonWReg = adc_stCof.uwIcOffset;//
- // }
- }
- // adc_flag_clear(ADC1,ADC_PCCE_FLAG);// //娓匒DC娉ㄥ叆缁勪腑鏂爣蹇�
- // IO_PC10_TEST_DISABLE; //PC10鎵撳嵃鎸囩ず
- }
- #elif(SampleModelSelect == COMBINATION)
- if (adc_flag_get(ADC1,ADC_PCCE_FLAG)) //ADCx->SR & 0x04 娉ㄥ叆缁勪腑鏂爣蹇�
- {
- if( (((uint8_t)TMR1->ctrl1) & 0x10) ==0)// //TIME1 鍚戜笂璁℃暟璇诲彇鐩哥數娴丄D鍊�
- {
- // GPIOC->odt ^= GPIO_PINS_13;// gpio_bits_reset(GPIOC,GPIO_PINS_13);
- adc_uwRdsonUReg = ADC1->pdt1_bit.pdt1;//
- adc_uwRdsonVReg = ADC1->pdt2_bit.pdt2;//
- adc_uwRdsonWReg = ADC1->pdt3_bit.pdt3;//
- /* CH4 set to "Frozen" */
- TMR1->cm2 &= ~0x7000;
- /* CH4 set to "PWM mode 1" */
- TMR1->cm2 |= 0x6000;
- hw_SetRdsonSample(ADC_CHANNEL_6);
- }
- else
- {
- // GPIOB->odt ^= GPIO_PINS_11; // gpio_bits_set(GPIOC,GPIO_PINS_13);//
- if( (pwm_stGenOut.blSampleCalibFlag == TRUE)&&(TMR1->c4dt!=pwm_stGenCoef.uwHPWMPd))
- {
- adc_uwADDMAPhase1 = ADC1->pdt1_bit.pdt1;//
- if(pwm_stGenOut.uwSingelRSampleArea == SampleA)
- {
- adc_uwIaReg = ADC1->pdt2_bit.pdt2;////
- GPIOC->odt ^= GPIO_PINS_15;
- }
- if(pwm_stGenOut.uwSingelRSampleArea == SampleB)
- {
- adc_uwIbReg = ADC1->pdt3_bit.pdt3;//
- }
- }
- // /* CH4 set to "Frozen" */
- TMR1->cm2 &= ~0x7000;
- // /* CH4 set to "PWM mode 2" */
- TMR1->cm2 |= 0x7000;
- //
- hw_SetIphaseSample();
- // adc_enable(ADC1,FALSE);
- //
- // adc_flag_clear(ADC1,ADC_PCCE_FLAG);// //娓匒DC娉ㄥ叆缁勪腑鏂爣蹇�
- }
- adc_flag_clear(ADC1,ADC_PCCE_FLAG);// //娓匒DC娉ㄥ叆缁勪腑鏂爣蹇�
- }
- #endif
- /* add user code end ADC1_CMP_IRQ 0 */
- /* add user code begin ADC1_CMP_IRQ 1 */
- /* add user code end ADC1_CMP_IRQ 1 */
- }
- /**
- * @brief this function handles TMR1 brake overflow trigger and hall handler.
- * @param none
- * @retval none
- */
- UWORD tmpSigRTrigZ1 = 0;
- UWORD SampUpTige = 0;
- UWORD SampDowmTige = 0;
- UWORD Samp_Step =0;
- void MOTOR_PWM_INST_IRQHandler(void) //void TMR1_BRK_OVF_TRG_HALL_IRQHandler(void)
- {
- // ECnt++;
- /* add user code begin TMR1_BRK_OVF_TRG_HALL_IRQ 0 */
- //if(0)//if(tmr_flag_get(TMR1,TMR_BRK_FLAG))//if (TIM_GetFlagStatus(TIM1, TIM_FLAG_Break))
- // {
- //// tmr_flag_clear(TMR1,TMR_BRK_FLAG);//TIM_ClearFlag(TIM1, TIM_FLAG_Break);
- //
- // }
- // IO_CHECKIO_H();
- switch (DL_TimerA_getPendingInterrupt(MOTOR_PWM_INST))
- {
- case DL_TIMER_IIDX_FAULT:
- FCnt++;
- //DL_GPIO_setPins(GPIOA, DL_GPIO_PIN_31);
- DL_Timer_overrideCCPOut(MOTOR_PWM_INST, DL_TIMER_FORCE_OUT_LOW, DL_TIMER_FORCE_CMPL_OUT_LOW, DL_TIMER_CC_0_INDEX);
- DL_Timer_overrideCCPOut(MOTOR_PWM_INST, DL_TIMER_FORCE_OUT_LOW, DL_TIMER_FORCE_CMPL_OUT_LOW, DL_TIMER_CC_1_INDEX);
- DL_Timer_overrideCCPOut(MOTOR_PWM_INST, DL_TIMER_FORCE_OUT_LOW, DL_TIMER_FORCE_CMPL_OUT_LOW, DL_TIMER_CC_2_INDEX);
- hw_voPWMOff();
- // IO_FTESTLED_ON(); //
- alm_unCode.bit.IPMFlt = TRUE;
- break;
- case DL_TIMER_IIDX_ZERO:
- ECnt++;
- // if(( Samp_Step==0) ||( Samp_Step>=4))
- // Samp_Step=1;
- // else
- // Samp_Step++;
- // switch (Samp_Step)
- // {
- // case 1:
- //// adc_enable(ADC1,TRUE);
- // // GPIOB->odt ^= GPIO_PINS_11;
- // /* Set Rdson sample trigger */
- // //TMR1->c4dt= 108;//108;//pwm_stGenOut.uwRDSONTrig;// TIM_SetCompare4(TIM1, pwm_stGenOut.uwRDSONTrig); //pwm鏈�澶у嚡90%锛屽湪娉㈣胺3us浣嶇疆閲囬泦姣嶇嚎鐢甸樆鐢垫祦
- // /* ADC1 regular channel trigger */
- //// adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- //
- // tbc_voUpIsr();
- // // DL_GPIO_togglePins(LED_PORT, LED_LED1_PIN);
- // break;
- // case 3:
- // /* ADC Rdson calibration with single resistance*/
- // if (TimingDelay != 0)
- // {
- // TimingDelay--;
- // }
- // if(bikespeed_stFreGetOut.uwCaputureOverflowCnt<60000)
- // bikespeed_stFreGetOut.uwCaputureOverflowCnt++; //
- // cadence_stFreGetOut.uwCaputureOverflowCnt++;
- // tbs_voIsr();//20241017
- //// if(BikeLedGloFun.blBike_ForwardLedSta==TRUE)
- //// {
- //// BikeLedGloFun.uwBikeLight_L_PWM +=100;
- //// if(BikeLedGloFun.uwBikeLight_L_PWM>720)
- //// {
- //// BikeLedGloFun.uwBikeLight_L_PWM=720;
- //// }
- ////
- //// BikeLedGloFun.uwBikeLight_F_PWM +=100;
- //// if(BikeLedGloFun.uwBikeLight_F_PWM>1800)
- //// {
- //// BikeLedGloFun.uwBikeLight_F_PWM=1800;
- //// }
- //// DL_TimerG_setCaptureCompareValue(PWM_2_INST, BikeLedGloFun.uwBikeLight_L_PWM, GPIO_PWM_2_C1_IDX);
- //// DL_TimerG_setCaptureCompareValue(PWM_3_INST, BikeLedGloFun.uwBikeLight_F_PWM, GPIO_PWM_3_C1_IDX);//max=1800
- //// }
- // break;
- // default:
- //
- // break;
- // }
- // gpio_bits_reset(GPIOC,GPIO_PINS_15);// GPIOC->odt ^= GPIO_PINS_15;
- // /* ADC1 regular channel trigger */
- // adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- // tbc_voUpIsr();
- // tmr_flag_clear(TMR1,TMR_OVF_FLAG);// TIM_ClearFlag(TIM1, TIM_FLAG_Update);
- // if((cp_stBikeRunInfoPara.uwLightSwitch!=0) &&(BikeLedGloFun.blBike_ForwardLedStart==TRUE))
- // {
- // if(BikeLedGloFun.blBike_ForwardLedDetErr==TRUE)
- // {
- // BikeLedGloFun.blBike_ForwardLedDetErr=FALSE ;
- // IO_FORWARDLED_ON(); //寮�鍓嶇伅
- // BikeLedGloFun.blBike_ForwardLedSta=TRUE;
- // BikeLedGloFun.uwlBike_ForwardLedDetErrTime++;
- // if(BikeLedGloFun.uwlBike_ForwardLedDetErrTime>=64)
- // {
- // BikeLedGloFun.blBike_ForwardLedStart=FALSE;
- // }
- // }
- // }
- // if(( BikeLedGloFun.blBike_BackLedSta==TRUE) &&(BikeLedGloFun.blBike_BackLedStart==TRUE))
- // {
- // if( BikeLedGloFun.blBike_BackLedDetErr==TRUE)
- //
- // {
- // BikeLedGloFun.blBike_BackLedDetErr=FALSE;
- // IO_BACKLED_ON();
- // BikeLedGloFun.uwBike_BackLedDetErrTime++;
- // if( BikeLedGloFun.uwBike_BackLedDetErrTime>=64)
- // {
- // BikeLedGloFun.blBike_BackLedStart=FALSE;
- // }
- // }
- // }
- break;
- case DL_TIMER_IIDX_LOAD:
- // GCnt++;
- // DL_GPIO_togglePins(LED_PORT, LED_LED2_PIN);
- // Samp_Step++;
- //// DL_Timer_clearInterruptStatus(MOTOR_PWM_INST,GPTIMER_CPU_INT_IMASK_L_SET);//
- // switch (Samp_Step)
- // {
- // case 2:
- // // gpio_bits_set(GPIOB,GPIO_PINS_11);
- // // adc_enable(ADC1,FALSE);//
- // tbc_voDownIsr(); //鐢垫祦 /鐢靛帇鑾峰彇 锛岃绠楁牎鍑嗙數娴侀噰鏍风偣 TMR1->c4dt=1000;// tmpSigRTrigZ1;
- // // gpio_bits_reset(GPIOB,GPIO_PINS_11);
- // #if(JSCOPE_EN!=0)
- // Jscope_WtiteData();
- // #endif
- // break;
- // case 4:
- // // GPIOC->odt ^= GPIO_PINS_13;
- //
- // hw_uwPWMCmpr[0] = pwm_stGenOut.uwNewTIM1COMPR[0];
- // hw_uwPWMCmpr[1] = pwm_stGenOut.uwNewTIM1COMPR[1];
- // hw_uwPWMCmpr[2] = pwm_stGenOut.uwNewTIM1COMPR[2];
- // hw_uwPWMCmpr[3] = pwm_stGenOut.uwNewTIM1COMPR[3];
- // hw_uwPWMCmpr[4] = pwm_stGenOut.uwNewTIM1COMPR[4];
- // hw_uwPWMCmpr[5] = pwm_stGenOut.uwNewTIM1COMPR[5];
- // /* Enable PWM DMA, hw_uwPWMCmpr[0/1/2] at underflow update */
- // // tmr_dma_request_enable(TMR1,TMR_OVERFLOW_DMA_REQUEST,TRUE);// TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
- // // dma_channel_enable(DMA1_CHANNEL5,TRUE); //DMA_Cmd(DMA1_Channel5, ENABLE);
- //
- //// pwm_stGenOut.uwNewTIM1COMPR[0]=900 ;
- //// pwm_stGenOut.uwNewTIM1COMPR[1]=1250;
- //// pwm_stGenOut.uwNewTIM1COMPR[2]=450 ;
- //
- //
- // TIMER_CC_A_INDEX(pwm_stGenOut.uwNewTIM1COMPR[0]);// DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[0], DL_TIMER_CC_0_INDEX);//A
- // TIMER_CC_B_INDEX(pwm_stGenOut.uwNewTIM1COMPR[1]);// DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[1], DL_TIMER_CC_2_INDEX); //B
- // TIMER_CC_C_INDEX(pwm_stGenOut.uwNewTIM1COMPR[2]);// DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[2], DL_TIMER_CC_1_INDEX);//C
- //
- // // adc_enable(ADC1,TRUE);//
- // DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST,2, DL_TIMER_CC_4_INDEX); //采样点设置
- // break;
- // default:
- //
- // break;
- // }
- break;
- default:
- break;
- }
- // IO_CHECKIO_L();
- // IO_CHECKIO_L();
- ////if(DL_TimerA_getPendingInterrupt(MOTOR_PWM_INST) & DL_TIMER_IIDX_ZERO )
- // {
- // // GPIOC->scr = GPIO_PINS_13; // GPIOC->odt ^= GPIO_PINS_13;
- //
- // #if(SampleModelSelect == DOUBLERESISTANCE)
- // // ULONG OVtimeCnt = 0;
- //// if( (((uint8_t)TMR1->ctrl1) & 0x10) ==0) // if ((TIM1->CR1 & TIM_CR1_DIR) == 0) // When Counting Up
- // if(DL_TimerA_getPendingInterrupt(MOTOR_PWM_INST) & DL_TIMER_IIDX_ZERO )// if( (((uint8_t)DL_Timer_getTimerCount(MOTOR_PWM_INST)) & 0x10) ==0) // if ((TIM1->CR1 & TIM_CR1_DIR) == 0) // When Counting Up
- // {
- //
- // DL_Timer_clearInterruptStatus(MOTOR_PWM_INST,GPTIMER_CPU_INT_IMASK_Z_SET);// tmr_flag_clear(TMR1,TMR_OVF_FLAG);//
- // // gpio_bits_reset(GPIOC,GPIO_PINS_15);
- // if(( Samp_Step==0) ||( Samp_Step>=4))
- // Samp_Step=1;
- // else
- // Samp_Step++;
- // switch (Samp_Step)
- // {
- // case 1:
- //// adc_enable(ADC1,TRUE);
- // // GPIOB->odt ^= GPIO_PINS_11;
- // /* Set Rdson sample trigger */
- // //TMR1->c4dt= 108;//108;//pwm_stGenOut.uwRDSONTrig;// TIM_SetCompare4(TIM1, pwm_stGenOut.uwRDSONTrig); //pwm鏈�澶у嚡90%锛屽湪娉㈣胺3us浣嶇疆閲囬泦姣嶇嚎鐢甸樆鐢垫祦
- // /* ADC1 regular channel trigger */
- //// adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- //
- // tbc_voUpIsr();
- //
- // break;
- // case 3:
- // /* ADC Rdson calibration with single resistance*/
- // if (TimingDelay != 0)
- // {
- // TimingDelay--;
- // }
- // break;
- // default:
- //
- // break;
- // }
- //
- //// gpio_bits_reset(GPIOC,GPIO_PINS_15);// GPIOC->odt ^= GPIO_PINS_15;
- //// /* ADC1 regular channel trigger */
- //// adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- //// tbc_voUpIsr();
- //// tmr_flag_clear(TMR1,TMR_OVF_FLAG);// TIM_ClearFlag(TIM1, TIM_FLAG_Update);
- // if((cp_stBikeRunInfoPara.uwLightSwitch!=0) &&(BikeLedGloFun.blBike_ForwardLedStart==TRUE))
- // {
- // if(BikeLedGloFun.blBike_ForwardLedDetErr==TRUE)
- // {
- // BikeLedGloFun.blBike_ForwardLedDetErr=FALSE ;
- // IO_FORWARDLED_ON(); //寮�鍓嶇伅
- // BikeLedGloFun.blBike_ForwardLedSta=TRUE;
- // BikeLedGloFun.uwlBike_ForwardLedDetErrTime++;
- // if(BikeLedGloFun.uwlBike_ForwardLedDetErrTime>=64)
- // {
- // BikeLedGloFun.blBike_ForwardLedStart=FALSE;
- // }
- // }
- // }
- // if(( BikeLedGloFun.blBike_BackLedSta==TRUE) &&(BikeLedGloFun.blBike_BackLedStart==TRUE))
- // {
- // if( BikeLedGloFun.blBike_BackLedDetErr==TRUE)
- //
- // {
- // BikeLedGloFun.blBike_BackLedDetErr=FALSE;
- // IO_BACKLED_ON();
- // BikeLedGloFun.uwBike_BackLedDetErrTime++;
- // if( BikeLedGloFun.uwBike_BackLedDetErrTime>=64)
- // {
- // BikeLedGloFun.blBike_BackLedStart=FALSE;
- // }
- // }
- // }
- // }
- // else if(DL_TimerA_getPendingInterrupt(MOTOR_PWM_INST) & DL_TIMER_IIDX_LOAD )
- // {
- // // gpio_bits_set(GPIOC,GPIO_PINS_15);
- //// if(DL_TimerA_getPendingInterrupt(MOTOR_PWM_INST) & DL_TIMER_IIDX_LOAD )// DL_Timer_clearInterruptStatus(MOTOR_PWM_INST,GPTIMER_CPU_INT_IMASK_L_SET);// tmr_flag_clear(TMR1,TMR_OVF_FLAG);//
- // //---------------------------
- // Samp_Step++;
- // DL_Timer_clearInterruptStatus(MOTOR_PWM_INST,GPTIMER_CPU_INT_IMASK_L_SET);//
- // switch (Samp_Step)
- // {
- // case 2:
- // // gpio_bits_set(GPIOB,GPIO_PINS_11);
- //// adc_enable(ADC1,FALSE);//
- // tbc_voDownIsr(); //鐢垫祦 /鐢靛帇鑾峰彇 锛岃绠楁牎鍑嗙數娴侀噰鏍风偣 TMR1->c4dt=1000;// tmpSigRTrigZ1;
- // // gpio_bits_reset(GPIOB,GPIO_PINS_11);
- // #if(JSCOPE_EN!=0)
- // Jscope_WtiteData();
- // #endif
- // break;
- // case 4:
- // // GPIOC->odt ^= GPIO_PINS_13;
- //
- // hw_uwPWMCmpr[0] = pwm_stGenOut.uwNewTIM1COMPR[0];
- // hw_uwPWMCmpr[1] = pwm_stGenOut.uwNewTIM1COMPR[1];
- // hw_uwPWMCmpr[2] = pwm_stGenOut.uwNewTIM1COMPR[2];
- // hw_uwPWMCmpr[3] = pwm_stGenOut.uwNewTIM1COMPR[3];
- // hw_uwPWMCmpr[4] = pwm_stGenOut.uwNewTIM1COMPR[4];
- // hw_uwPWMCmpr[5] = pwm_stGenOut.uwNewTIM1COMPR[5];
- // /* Enable PWM DMA, hw_uwPWMCmpr[0/1/2] at underflow update */
- //// tmr_dma_request_enable(TMR1,TMR_OVERFLOW_DMA_REQUEST,TRUE);// TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
- //// dma_channel_enable(DMA1_CHANNEL5,TRUE); //DMA_Cmd(DMA1_Channel5, ENABLE);
- //
- // DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[1], DL_TIMER_CC_0_INDEX); //B
- // DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[2], DL_TIMER_CC_2_INDEX);//C
- // DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[0], DL_TIMER_CC_3_INDEX);//A
- //// adc_enable(ADC1,TRUE);//
- // break;
- // default:
- //
- // break;
- // }
- //
- // // adc_enable(ADC1,TRUE);// ADC_Cmd(ADC1, ENABLE);
- //// gpio_bits_set(GPIOC,GPIO_PINS_15);
- //// tmr_counter_value_set(TMR6,0); // TIM4->CNT = 0;
- //// adc_enable(ADC1,FALSE);// ADC_Cmd(ADC1, DISABLE); //鍏抽棴ADC瑙勫垯缁�
- //// tbc_voDownIsr();
- //// while ((tmr_counter_value_get(TMR6) < (HW_PWM_PERIOD)) && (OVtimeCnt < ((HW_HHPWM_PERIOD * FPWM_HZ)))) //36M clk
- //// {
- //// OVtimeCnt++;
- //// };
- ////
- //// /* Load PWM Compare value */
- //// hw_uwPWMCmpr[0] = pwm_stGenOut.uwNewTIM1COMPR[0];
- //// hw_uwPWMCmpr[1] = pwm_stGenOut.uwNewTIM1COMPR[1];
- //// hw_uwPWMCmpr[2] = pwm_stGenOut.uwNewTIM1COMPR[2];
- //// hw_uwPWMCmpr[3] = pwm_stGenOut.uwNewTIM1COMPR[3];
- //// hw_uwPWMCmpr[4] = pwm_stGenOut.uwNewTIM1COMPR[4];
- //// hw_uwPWMCmpr[5] = pwm_stGenOut.uwNewTIM1COMPR[5];
- //// /* Enable PWM DMA, hw_uwPWMCmpr[0/1/2] at underflow update */
- //// tmr_dma_request_enable(TMR1,TMR_OVERFLOW_DMA_REQUEST,TRUE);// TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
- //// dma_channel_enable(DMA1_CHANNEL5,TRUE); //DMA_Cmd(DMA1_Channel5, ENABLE);
- ////
- //// adc_enable(ADC1,TRUE);// ADC_Cmd(ADC1, ENABLE);
- ////
- //// tmr_flag_clear(TMR1,TMR_OVF_FLAG);// TIM_ClearFlag(TIM1, TIM_FLAG_Update);
- // }
- // else
- // {
- // if(DL_TimerA_getPendingInterrupt(MOTOR_PWM_INST) & DL_TIMER_IIDX_FAULT )
- // {
- // DL_Timer_clearInterruptStatus(MOTOR_PWM_INST,GPTIMER_CPU_INT_IMASK_F_SET);//
- // GCnt++;
- // hw_voPWMOff();
- // }
- //
- // }
- //
- //
- //#elif(SampleModelSelect == COMBINATION)
- //
- // // ULONG OVtimeCnt = 0;
- //
- // if( (((uint8_t)TMR1->ctrl1) & 0x10) ==0)// When Counting Up 璁℃暟鍣ㄥ悜涓婅鏁帮紝鐜板湪娉㈣胺
- // {
- // tmr_flag_clear(TMR1,TMR_OVF_FLAG);//
- // // gpio_bits_reset(GPIOC,GPIO_PINS_15);
- // if(( Samp_Step==0) ||( Samp_Step>=4))
- // Samp_Step=1;
- // else
- // Samp_Step++;
- // switch (Samp_Step)
- // {
- // case 1:
- // adc_enable(ADC1,TRUE);
- // // GPIOB->odt ^= GPIO_PINS_11;
- // /* Set Rdson sample trigger */
- // TMR1->c4dt= 108;//108;//pwm_stGenOut.uwRDSONTrig;// TIM_SetCompare4(TIM1, pwm_stGenOut.uwRDSONTrig); //pwm鏈�澶у嚡90%锛屽湪娉㈣胺3us浣嶇疆閲囬泦姣嶇嚎鐢甸樆鐢垫祦
- // /* ADC1 regular channel trigger */
- // adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- //
- // tbc_voUpIsr();
- //
- // break;
- // case 3:
- // /* ADC Rdson calibration with single resistance*/
- //
- // break;
- // default:
- //
- // break;
- // }
- //
- //
- // #if(JSCOPE_EN!=0)
- // Jscope_WtiteData();
- // #endif
- // }
- // else //鍚戜笅璁℃暟锛屾尝宄�
- // {
- // // gpio_bits_set(GPIOC,GPIO_PINS_15);
- // tmr_flag_clear(TMR1,TMR_OVF_FLAG);//
- // //---------------------------
- // Samp_Step++;
- //
- // switch (Samp_Step)
- // {
- // case 2:
- // // gpio_bits_set(GPIOB,GPIO_PINS_11);
- // adc_enable(ADC1,FALSE);//
- // tbc_voDownIsr(); //鐢垫祦 /鐢靛帇鑾峰彇 锛岃绠楁牎鍑嗙數娴侀噰鏍风偣 TMR1->c4dt=1000;// tmpSigRTrigZ1;
- // // gpio_bits_reset(GPIOB,GPIO_PINS_11);
- // break;
- // case 4:
- // // GPIOC->odt ^= GPIO_PINS_13;
- // adc_enable(ADC1,TRUE);//
- //// if(tmpSigRTrigZ1>700)
- //// {
- //// TMR1->c4dt= tmpSigRTrigZ1;///TIM_SetCompare4(TIM1, tmpSigRTrigZ1);
- //// }
- //// else
- //// {
- //// TMR1->c4dt= 1500;
- //// }
- // TMR1->c4dt= tmpSigRTrigZ1;
- // tmpSigRTrigZ1 = pwm_stGenOut.uwSigRTrig;
- // hw_uwPWMCmpr[0] = pwm_stGenOut.uwNewTIM1COMPR[0];
- // hw_uwPWMCmpr[1] = pwm_stGenOut.uwNewTIM1COMPR[1];
- // hw_uwPWMCmpr[2] = pwm_stGenOut.uwNewTIM1COMPR[2];
- // hw_uwPWMCmpr[3] = pwm_stGenOut.uwNewTIM1COMPR[3];
- // hw_uwPWMCmpr[4] = pwm_stGenOut.uwNewTIM1COMPR[4];
- // hw_uwPWMCmpr[5] = pwm_stGenOut.uwNewTIM1COMPR[5];
- // /* Enable PWM DMA, hw_uwPWMCmpr[0/1/2] at underflow update */
- // tmr_dma_request_enable(TMR1,TMR_OVERFLOW_DMA_REQUEST,TRUE);// TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
- // dma_channel_enable(DMA1_CHANNEL5,TRUE); //DMA_Cmd(DMA1_Channel5, ENABLE);
- //
- // break;
- // default:
- //
- // break;
- // }
- //
- //
- // //---------------------------
- //
- //
- //// tmr_counter_value_set(TMR6,0); // TIM4->CNT = 0;
- //// gpio_bits_set(GPIOC,GPIO_PINS_15);
- //// adc_enable(ADC1,FALSE);//
- ////
- //// tbc_voDownIsr(); //鐢垫祦 /鐢靛帇鑾峰彇 锛岃绠楁牎鍑嗙數娴侀噰鏍风偣
- ////
- //// while ((tmr_counter_value_get(TMR6) < (HW_PWM_PERIOD)) && (OVtimeCnt < ((HW_HHPWM_PERIOD * FPWM_HZ)))) //36M clk
- //// {
- //// OVtimeCnt++;
- //// };
- ////
- //// /* Set Ibus sample trigger */
- //// adc_enable(ADC1,TRUE);// ADC_Cmd(ADC2, ENABLE);
- //// TMR1->c4dt= 500;// tmpSigRTrigZ1;///TIM_SetCompare4(TIM1, tmpSigRTrigZ1);
- //// tmpSigRTrigZ1 = pwm_stGenOut.uwSigRTrig;
- //// /* Load PWM Compare value */
- //// hw_uwPWMCmpr[0] = pwm_stGenOut.uwNewTIM1COMPR[0];
- //// hw_uwPWMCmpr[1] = pwm_stGenOut.uwNewTIM1COMPR[1];
- //// hw_uwPWMCmpr[2] = pwm_stGenOut.uwNewTIM1COMPR[2];
- //// hw_uwPWMCmpr[3] = pwm_stGenOut.uwNewTIM1COMPR[3];
- //// hw_uwPWMCmpr[4] = pwm_stGenOut.uwNewTIM1COMPR[4];
- //// hw_uwPWMCmpr[5] = pwm_stGenOut.uwNewTIM1COMPR[5];
- //// /* Enable PWM DMA, hw_uwPWMCmpr[0/1/2] at underflow update */
- //// tmr_dma_request_enable(TMR1,TMR_OVERFLOW_DMA_REQUEST,TRUE);// TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
- //// dma_channel_enable(DMA1_CHANNEL5,TRUE); //DMA_Cmd(DMA1_Channel5, ENABLE);
- ////
- //// adc_enable(ADC1,TRUE);//
- //
- //
- // }
- //
- //
- //#endif
- // }
-
- // BrkFlg++;
- /* add user code end TMR1_BRK_OVF_TRG_HALL_IRQ 0 */
- /* add user code begin TMR1_BRK_OVF_TRG_HALL_IRQ 1 */
- /* add user code end TMR1_BRK_OVF_TRG_HALL_IRQ 1 */
- }
- /**
- * @brief this function handles TMR1 channel handler.
- * @param none
- * @retval none
- */
- //void TMR1_CH_IRQHandler(void)
- //{
- // /* add user code begin TMR1_CH_IRQ 0 */
- // // if(tmr_interrupt_flag_get(TMR1,TMR_OVF_FLAG))
- // // {
- //// if(tmr_cnt_dir_get(TMR1))
- //// {
- //// gpio_bits_set(Break_GPIO_PORT,Break_PIN);
- //// }else{
- //// gpio_bits_reset(Break_GPIO_PORT,Break_PIN);
- //// }
- // //Break_GPIO_PORT->odt ^= Break_PIN;
- // // }
- //
- //
- // /* add user code end TMR1_CH_IRQ 0 */
- // /* add user code begin TMR1_CH_IRQ 1 */
- //
- // /* add user code end TMR1_CH_IRQ 1 */
- //}
- /**
- * @brief this function handles TMR3 handler.
- * @param none
- * @retval none
- */
- void GROUP1_IRQHandler(void) //void TMR3_GLOBAL_IRQHandler(void)
- {
- // switch (DL_COMP_getPendingInterrupt(COMP_0_INST)) { // over Cur
- // case DL_COMP_IIDX_OUTPUT_EDGE:
- //
- // hw_voPWMOff();
- // // IO_FTESTLED_ON();
- //
- // alm_unCode.bit.IPMFlt = TRUE;
- //
- // break;
- // case DL_COMP_IIDX_OUTPUT_EDGE_INV:
- //
- // break;
- // default:
- // break;
- // }
- switch (DL_COMP_getPendingInterrupt(COMP_FLEDCHECK_INST)) {
- case DL_COMP_IIDX_OUTPUT_EDGE:
- if(BikeLedCheck_F.uwBike_OpenLedEn!=0)
- {
- DL_TimerG_setCaptureCompareValue(PWM_F_INST, 0, GPIO_PWM_F_C1_IDX);//max=2304
- }
- else
- {
- if(BikeLedCheck_F.uwBike_OpenPreTime<=2)
- {
- BikeLedCheck_F.uwBike_OpenPreTime=2;
- // CMPF++;
- BikeLedCheck_F.uwBikeLight_PWM=691;//LIGHT_SECTPWM;
- DL_TimerG_setCaptureCompareValue(PWM_F_INST, BikeLedCheck_F.uwBikeLight_PWM, GPIO_PWM_F_C1_IDX);//max=2304
- }
- }
- BikeLedCheck_F.blBike_LedCurErr=TRUE;
- // CHMPF++;
- break;
- case DL_COMP_IIDX_OUTPUT_EDGE_INV:
- if(BikeLedCheck_F.uwBike_OpenLedEn!=0)
- {
- DL_TimerG_stopCounter(PWM_F_INST);
- BikeLedCheck_F.uwBikeLight_PWM=0;
- DL_TimerG_setCaptureCompareValue(PWM_F_INST, 0, GPIO_PWM_F_C1_IDX);//max=2304
- }
- // CLMPF++;
- break;
- default:
- break;
- }
- uint32_t gpioA = DL_GPIO_getEnabledInterruptStatus(
- GPIOA,DL_GPIO_PIN_8 | DL_GPIO_PIN_3 );
- uint32_t gpioB = DL_GPIO_getEnabledInterruptStatus(
- GPIOB, DL_GPIO_PIN_3 | DL_GPIO_PIN_2| DL_GPIO_PIN_8| DL_GPIO_PIN_15);
- //B_LED
- if ((gpioB & DL_GPIO_PIN_15) == DL_GPIO_PIN_15)
- {
- if(BikeLedCheck_B.uwBike_OpenLedEn!=0)
- {
- // DL_TimerG_stopCounter(PWM_B_L_INST);
- DL_Timer_overrideCCPOut(PWM_B_L_INST, DL_TIMER_FORCE_OUT_LOW, DL_TIMER_FORCE_CMPL_OUT_LOW, GPIO_PWM_B_L_C1_IDX);
- BikeLedCheck_B.uwBikeLight_PWM=0;
- DL_TimerG_setCaptureCompareValue(PWM_B_L_INST, 0, GPIO_PWM_B_L_C1_IDX);//max=2304
- CLMPF++;
- }
- else
- {
- if(BikeLedCheck_B.uwBike_OpenPreTime<=2)
- {
- BikeLedCheck_B.uwBike_OpenPreTime=2;
- CMPF++;
- BikeLedCheck_B.uwBikeLight_PWM=691;//LIGHT_SECTPWM;
- DL_TimerG_setCaptureCompareValue(PWM_B_L_INST, BikeLedCheck_B.uwBikeLight_PWM, GPIO_PWM_B_L_C1_IDX);//max=2304
- }
- }
- BikeLedCheck_B.blBike_LedCurErr=TRUE;
- CHMPF++;
- DL_GPIO_clearInterruptStatus(GPIOB, DL_GPIO_PIN_15);
- }
- //R_LED
- if ((gpioB & DL_GPIO_PIN_8) == DL_GPIO_PIN_8)
- {
- if(BikeLedCheck_R.uwBike_OpenLedEn!=0)
- {
- DL_TimerG_stopCounter(PWM_R_INST);
- BikeLedCheck_R.uwBikeLight_PWM=0;
- DL_TimerG_setCaptureCompareValue(PWM_R_INST, 0, GPIO_PWM_R_C1_IDX);//max=2304
- // CLMPF++;
- }
- else
- {
- if(BikeLedCheck_R.uwBike_OpenPreTime<=2)
- {
- BikeLedCheck_R.uwBike_OpenPreTime=2;
- // CMPF++;
- BikeLedCheck_R.uwBikeLight_PWM=691;//LIGHT_SECTPWM;
- DL_TimerG_setCaptureCompareValue(PWM_R_INST, BikeLedCheck_R.uwBikeLight_PWM, GPIO_PWM_R_C1_IDX);//max=2304
- }
- }
- BikeLedCheck_R.blBike_LedCurErr=TRUE;
- // CHMPF++;
- DL_GPIO_clearInterruptStatus(GPIOB, DL_GPIO_PIN_8);
- }
- //-L-LED
- if ((gpioA & DL_GPIO_PIN_3) == DL_GPIO_PIN_3)
- {
- if(BikeLedCheck_L.uwBike_OpenLedEn!=0)
- {
- // DL_TimerG_stopCounter(PWM_B_L_INST);
- DL_Timer_overrideCCPOut(PWM_B_L_INST, DL_TIMER_FORCE_OUT_LOW, DL_TIMER_FORCE_CMPL_OUT_LOW, GPIO_PWM_B_L_C0_IDX);
- BikeLedCheck_L.uwBikeLight_PWM=0;
- DL_TimerG_setCaptureCompareValue(PWM_B_L_INST, 0, GPIO_PWM_B_L_C0_IDX);//max=2304
- // CLMPF++;
- }
- else
- {
- if(BikeLedCheck_L.uwBike_OpenPreTime<=2)
- {
- BikeLedCheck_L.uwBike_OpenPreTime=2;
- CMPF++;
- BikeLedCheck_L.uwBikeLight_PWM=691;//LIGHT_SECTPWM;
- DL_TimerG_setCaptureCompareValue(PWM_B_L_INST, BikeLedCheck_L.uwBikeLight_PWM, GPIO_PWM_B_L_C0_IDX);//max=2304
- }
- }
- BikeLedCheck_L.blBike_LedCurErr=TRUE;
- // CHMPF++;
- DL_GPIO_clearInterruptStatus(GPIOA, DL_GPIO_PIN_3);
- }
- /* add user code begin TMR3_GLOBAL_IRQ 0 */
- if( ((gpioA & DL_GPIO_PIN_8) == DL_GPIO_PIN_8) || ((gpioB & DL_GPIO_PIN_3) == DL_GPIO_PIN_3) ||((gpioB & DL_GPIO_PIN_2) == DL_GPIO_PIN_2))
- {
- HGcnt++;
- switchhall_voTim3Int();
- DL_GPIO_clearInterruptStatus(GPIOA, DL_GPIO_PIN_8);
- DL_GPIO_clearInterruptStatus(GPIOB, DL_GPIO_PIN_3);
- DL_GPIO_clearInterruptStatus(GPIOB, DL_GPIO_PIN_2);
- }
- // if ((gpioA & DL_GPIO_PIN_26) == DL_GPIO_PIN_26)
- // {
- // DL_GPIO_clearInterruptStatus(GPIOA, DL_GPIO_PIN_26);
- // }
- /* add user code end TMR3_GLOBAL_IRQ 0 */
- /* add user code begin TMR3_GLOBAL_IRQ 1 */
- /* add user code end TMR3_GLOBAL_IRQ 1 */
- /*
- * Get the pending interrupt for the GPIOA port and store for
- * comparisons later
- */
- }
- /**
- * @brief this function handles TMR16 handler.
- * @param none
- * @retval none
- */
- //void SPEED_INST_IRQHandler(void) //void TMR16_GLOBAL_IRQHandler(void)
- //{
- //
- // /* add user code begin TMR16_GLOBAL_IRQ 0 */
- ////Bike Speed
- // UWORD uwIntSource = 0;
- //
- //
- // switch (DL_TimerG_getPendingInterrupt(SPEED_INST))
- // {
- // case DL_TIMER_IIDX_CC0_DN:
- // SPEED_edgeCapture = DL_Timer_getCaptureCompareValue(SPEED_INST, DL_TIMER_CC_0_INDEX);
- //
- //// tmr_flag_clear(TMR16,TMR_C1_FLAG);//TIM_ClearFlag(TIM2, TIM_FLAG_CC4);
- // uwIntSource = 3;
- // // tempIO2 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11);
- //// if(gpio_input_data_bit_read(GPIOB,GPIO_PINS_8))//(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11))
- // {
- //// tmr_output_channel_polarity_set(TMR16,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_LOW); // TIM_OC4PolarityConfig(TIM2,TIM_ICPolarity_Falling);
- // }
- //// else
- // {
- //// tmr_output_channel_polarity_set(TMR16,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_HIGH); // TIM_OC4PolarityConfig(TIM2,TIM_ICPolarity_Rising);
- // }
- //
- // // bikespeed_voBikeSpeedCal(uwIntSource);
- //
- // break;
- // case DL_TIMER_IIDX_ZERO:
- // uwIntSource = 1;
- // /* TBS interrupt */
- // // tbs_voIsr();
- //
- // /* CadenceCal and BikespeedCal */
- //
- // // bikespeed_voBikeSpeedCal(uwIntSource);
- // DCnt++;
- // break;
- // default:
- // break;
- // }
- //
- //
- //// if(tmr_flag_get(TMR16,TMR_OVF_FLAG))// if (TIM_GetFlagStatus(TIM2, TIM_FLAG_Update))
- //// {
- //// tmr_flag_clear(TMR16,TMR_OVF_FLAG);//
- //// uwIntSource = 1;
- //// /* TBS interrupt */
- //// tbs_voIsr();
- ////
- //// /* CadenceCal and BikespeedCal */
- ////
- //// bikespeed_voBikeSpeedCal(uwIntSource);
- ////
- //// }
- //// else if (tmr_flag_get(TMR16,TMR_C1_FLAG))//(TIM_GetFlagStatus(TIM2, TIM_FLAG_CC4))
- //// {
- //// tmr_flag_clear(TMR16,TMR_C1_FLAG);//TIM_ClearFlag(TIM2, TIM_FLAG_CC4);
- //// uwIntSource = 3;
- //// // tempIO2 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11);
- //// if(gpio_input_data_bit_read(GPIOB,GPIO_PINS_8))//(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11))
- //// {
- //// tmr_output_channel_polarity_set(TMR16,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_LOW); // TIM_OC4PolarityConfig(TIM2,TIM_ICPolarity_Falling);
- //// }
- //// else
- //// {
- //// tmr_output_channel_polarity_set(TMR16,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_HIGH); // TIM_OC4PolarityConfig(TIM2,TIM_ICPolarity_Rising);
- //// }
- ////
- //// bikespeed_voBikeSpeedCal(uwIntSource);
- //// }
- // /* add user code end TMR16_GLOBAL_IRQ 0 */
- // /* add user code begin TMR16_GLOBAL_IRQ 1 */
- //
- // /* add user code end TMR16_GLOBAL_IRQ 1 */
- //}
- /**
- * @brief this function handles TMR17 handler.
- * @param none
- * @retval none
- */
- //void TAPIN_INST_IRQHandler(void)//void TMR17_GLOBAL_IRQHandler(void)
- //{
- // /* add user code begin TMR17_GLOBAL_IRQ 0 */
- ////韪忛牷
- //UWORD uwIntSource = 0;
- //
- //
- // switch (DL_TimerG_getPendingInterrupt(TAPIN_INST))
- // {
- // case DL_TIMERG_IIDX_CC0_DN:
- // TIPIN_edgeCapture = DL_Timer_getCaptureCompareValue(TAPIN_INST, DL_TIMER_CC_0_INDEX);
- // uwIntSource = 2;
- // // tempIO1 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10);
- // // if(gpio_input_data_bit_read(GPIOB,GPIO_PINS_9))//(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10))
- // // {
- // // tmr_output_channel_polarity_set(TMR17,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_LOW); // TIM_OC3PolarityConfig(TIM2,TIM_ICPolarity_Falling);
- // // }
- // // else
- // // {
- // // tmr_output_channel_polarity_set(TMR17,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_HIGH); // TIM_OC3PolarityConfig(TIM2,TIM_ICPolarity_Rising);
- // // }
- // cadence_voCadenceCal(uwIntSource);
- //
- // break;
- // case DL_TIMER_IIDX_ZERO:
- // uwIntSource = 1;
- // /* TBS interrupt */
- // // tbs_voIsr();
- //
- // /* CadenceCal and BikespeedCal */
- // cadence_voCadenceCal(uwIntSource);
- // ECnt++;
- // break;
- // default:
- // break;
- // }
- //
- //// if(tmr_flag_get(TMR17,TMR_OVF_FLAG))// if (TIM_GetFlagStatus(TIM2, TIM_FLAG_Update))
- //// {
- //// uwIntSource = 1;
- //// /* TBS interrupt */
- //// // tbs_voIsr();
- ////
- //// /* CadenceCal and BikespeedCal */
- //// cadence_voCadenceCal(uwIntSource);
- ////
- //// tmr_flag_clear(TMR17,TMR_OVF_FLAG);// TIM_ClearFlag(TIM2, TIM_FLAG_Update);
- //// }
- //// else if (tmr_flag_get(TMR17,TMR_C1_FLAG))//(TIM_GetFlagStatus(TIM2, TIM_FLAG_CC3))
- //// {
- //// uwIntSource = 2;
- //// // tempIO1 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10);
- ////// if(gpio_input_data_bit_read(GPIOB,GPIO_PINS_9))//(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10))
- ////// {
- ////// tmr_output_channel_polarity_set(TMR17,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_LOW); // TIM_OC3PolarityConfig(TIM2,TIM_ICPolarity_Falling);
- ////// }
- ////// else
- ////// {
- ////// tmr_output_channel_polarity_set(TMR17,TMR_SELECT_CHANNEL_1,TMR_POLARITY_ACTIVE_HIGH); // TIM_OC3PolarityConfig(TIM2,TIM_ICPolarity_Rising);
- ////// }
- //// cadence_voCadenceCal(uwIntSource);
- //// tmr_flag_clear(TMR17,TMR_C1_FLAG);//TIM_ClearFlag(TIM2, TIM_FLAG_CC3);
- //// }
- ////
- //// /* add user code end TMR17_GLOBAL_IRQ 0 */
- //// /* add user code begin TMR17_GLOBAL_IRQ 1 */
- ////
- //// /* add user code end TMR17_GLOBAL_IRQ 1 */
- //}
- /**
- * @brief this function handles USART1 handler.
- * @param none
- * @retval none
- */
- void UART0_IRQHandler(void)
- {
- // USARTx_Rx_IRQ(&UART_RxBuff_Struct_OBC);
- // USARTx_Tx_IRQ(&UART_TxBuff_Struct_OBC);
- USARTx_RxTX_IRQ(&UART_RxBuff_Struct_OBC,&UART_TxBuff_Struct_OBC,&stUSART_FrameBuf_OBC);
- }
- //
- ///**
- // * @brief this function handles USART2 handler.
- // * @param none
- // * @retval none
- // */
- //void UART_BAT_INST_IRQHandler(void)
- //{
- // USARTx_Rx_IRQ(&UART_RxBuff_Struct_BMS);
- // USARTx_Tx_IRQ(&UART_TxBuff_Struct_BMS);
- //}
- //
- ULONG id = 0;
- void MCAN0_INST_IRQHandler(void)
- {
- volatile ULONG gInterruptLine1Status = 0;
- DL_MCAN_RxFIFOStatus rxFS;
- switch (DL_MCAN_getPendingInterrupt(MCAN0_INST)) {
- case DL_MCAN_IIDX_LINE1:
- /* Check MCAN interrupts fired during TX/RX of CAN package */
- gInterruptLine1Status |= DL_MCAN_getIntrStatus(MCAN0_INST);
- DL_MCAN_clearIntrStatus(MCAN0_INST, gInterruptLine1Status,DL_MCAN_INTR_SRC_MCAN_LINE_1);
- if ((gInterruptLine1Status & MCAN_IR_RF0N_MASK) == MCAN_IR_RF0N_MASK)
- {
- rxFS.fillLvl = 0;
- rxFS.num = DL_MCAN_RX_FIFO_NUM_0;
- while ((rxFS.fillLvl) == 0)
- {
- DL_MCAN_getRxFIFOStatus(MCAN0_INST, &rxFS);
- }
- DL_MCAN_readMsgRam(MCAN0_INST, DL_MCAN_MEM_TYPE_FIFO, 0U, rxFS.num, pRxMsg);
- DL_MCAN_writeRxFIFOAck(MCAN0_INST, rxFS.num, rxFS.getIdx);
- if(pRxMsg->xtd == 0)
- {
- id = ((pRxMsg->id) & 0x1FFC0000)>>18;
- }
- else
- {
- id = pRxMsg->id & 0x1FFFFFFF;
- }
- if(pRxMsg->xtd == ID_MODE_STANDARD)
- {
- //11-bit standard identifier
- switch (id)
- {
- case ID_PBU_BC:
- case ID_PBU_TO_MC: //接收PBU数据
- {
- CAN_RxBuf_Struct_PBU.ulBufID = id;
- CAN_Rx_ISR(&CAN_RxBuf_Struct_PBU, pRxMsg->dlc);
- break;
- }
- case ID_BMS_BC:
- case ID_BMS_TO_MC: //接收BMS数据
- {
- CAN_RxBuf_Struct_BMS.ulBufID = id;
- CAN_Rx_ISR(&CAN_RxBuf_Struct_BMS, pRxMsg->dlc);
- break;
- }
- case ID_HMI_BC:
- case ID_HMI_TO_MC: //接收HMI数据
- {
- CAN_RxBuf_Struct_HMI.ulBufID = id;
- CAN_Rx_ISR(&CAN_RxBuf_Struct_HMI, pRxMsg->dlc);
- break;
- }
- case ID_CDL_BC:
- case ID_CDL_TO_MC: // case ID_CDL_TO_MC_TE://接收CDL数据
- {
- CAN_RxBuf_Struct_CDL.ulBufID = id;
- CAN_Rx_ISR(&CAN_RxBuf_Struct_CDL, pRxMsg->dlc);
- break;
- }
- default:
- break;
- }
- }
- else
- {
- //29-bit extended identifier
- }
- gInterruptLine1Status &= ~(MCAN_IR_RF0N_MASK);
- }
- break;
- default:
- break;
- }
- }
- ///**
- // * @brief this function handles EXINT Line 1 & 0 handler.
- // * @param none
- // * @retval none
- // */
- //void EXINT1_0_IRQHandler(void)
- //{
- // UWORD lightCnt=0;
- // UWORD lightCntTime=0;
- // UWORD lightTime=0;
- // UWORD BacklightTime=0;
- //
- // /* add user code begin EXINT1_0_IRQ 0 */
- // if(exint_interrupt_flag_get(EXINT_LINE_0) != RESET)
- // {
- //
- // for(lightCnt=0;lightCnt<=12;lightCnt++)
- // {
- // if(IO_FORWARDLEDCHECK_PORT()==0)
- // lightCntTime++;
- // }
- //
- // if(lightCntTime>=(11))
- // {
- // IO_FORWARDLED_OFF();
- // BikeLedGloFun.blBike_ForwardLedDetErr=TRUE;
- // lightCntTime=0;
- // }
- // exint_flag_clear(EXINT_LINE_0);
- // }
- // /* add user code end EXINT1_0_IRQ 0 */
- // /* add user code begin EXINT1_0_IRQ 1 */
- // if(exint_interrupt_flag_get(EXINT_LINE_1) != RESET)
- // {
- // for(lightTime=0;lightTime<=12;lightTime++)//40
- // {
- // if(IO_BACKLEDCHECK_PORT()==0)
- // BacklightTime++;
- // }
- // if(BacklightTime>=(11))
- // {
- // IO_BACKLED_OFF();
- // BikeLedGloFun.blBike_BackLedDetErr=TRUE ;
- // BacklightTime=0;
- // }
- //
- // exint_flag_clear(EXINT_LINE_1);
- // }
- // /* add user code end EXINT1_0_IRQ 1 */
- //}
- void TIMA1_IRQHandler(void) //void TMR1_BRK_OVF_TRG_HALL_IRQHandler(void)
- {
- // ECnt++;
- /* add user code begin TMR1_BRK_OVF_TRG_HALL_IRQ 0 */
- //if(0)//if(tmr_flag_get(TMR1,TMR_BRK_FLAG))//if (TIM_GetFlagStatus(TIM1, TIM_FLAG_Break))
- // {
- //// tmr_flag_clear(TMR1,TMR_BRK_FLAG);//TIM_ClearFlag(TIM1, TIM_FLAG_Break);
- //
- // }
- switch (DL_TimerA_getPendingInterrupt(TIMA1))
- {
- case DL_TIMER_IIDX_ZERO:
- ECnt++;
- if(( Samp_Step==0) ||( Samp_Step>=4))
- Samp_Step=1;
- else
- Samp_Step++;
- switch (Samp_Step)
- {
- case 1:
- // adc_enable(ADC1,TRUE);
- // GPIOB->odt ^= GPIO_PINS_11;
- /* Set Rdson sample trigger */
- //TMR1->c4dt= 108;//108;//pwm_stGenOut.uwRDSONTrig;// TIM_SetCompare4(TIM1, pwm_stGenOut.uwRDSONTrig); //pwm鏈�澶у嚡90%锛屽湪娉㈣胺3us浣嶇疆閲囬泦姣嶇嚎鐢甸樆鐢垫祦
- /* ADC1 regular channel trigger */
- // adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- tbc_voUpIsr();
- // DL_GPIO_togglePins(LED_PORT, LED_LED1_PIN);
- break;
- case 3:
- /* ADC Rdson calibration with single resistance*/
- if (TimingDelay != 0)
- {
- TimingDelay--;
- }
- if(bikespeed_stFreGetOut.uwCaputureOverflowCnt<60000)
- bikespeed_stFreGetOut.uwCaputureOverflowCnt++; //
- if(cadence_stFreGetOut.uwCaputureOverflowCnt<60000)
- cadence_stFreGetOut.uwCaputureOverflowCnt++;
- tbs_voIsr();//20241017
- // if(BikeLedGloFun.blBike_ForwardLedSta==TRUE)
- // {
- // BikeLedGloFun.uwBikeLight_L_PWM +=100;
- // if(BikeLedGloFun.uwBikeLight_L_PWM>720)
- // {
- // BikeLedGloFun.uwBikeLight_L_PWM=720;
- // }
- //
- // BikeLedGloFun.uwBikeLight_F_PWM +=100;
- // if(BikeLedGloFun.uwBikeLight_F_PWM>1800)
- // {
- // BikeLedGloFun.uwBikeLight_F_PWM=1800;
- // }
- // DL_TimerG_setCaptureCompareValue(PWM_2_INST, BikeLedGloFun.uwBikeLight_L_PWM, GPIO_PWM_2_C1_IDX);
- // DL_TimerG_setCaptureCompareValue(PWM_3_INST, BikeLedGloFun.uwBikeLight_F_PWM, GPIO_PWM_3_C1_IDX);//max=1800
- // }
- break;
- default:
- break;
- }
- // gpio_bits_reset(GPIOC,GPIO_PINS_15);// GPIOC->odt ^= GPIO_PINS_15;
- // /* ADC1 regular channel trigger */
- // adc_ordinary_software_trigger_enable(ADC1,TRUE);// ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- // tbc_voUpIsr();
- // tmr_flag_clear(TMR1,TMR_OVF_FLAG);// TIM_ClearFlag(TIM1, TIM_FLAG_Update);
- // if((cp_stBikeRunInfoPara.uwLightSwitch!=0) &&(BikeLedGloFun.blBike_ForwardLedStart==TRUE))
- // {
- // if(BikeLedGloFun.blBike_ForwardLedDetErr==TRUE)
- // {
- // BikeLedGloFun.blBike_ForwardLedDetErr=FALSE ;
- // IO_FORWARDLED_ON(); //寮�鍓嶇伅
- // BikeLedGloFun.blBike_ForwardLedSta=TRUE;
- // BikeLedGloFun.uwlBike_ForwardLedDetErrTime++;
- // if(BikeLedGloFun.uwlBike_ForwardLedDetErrTime>=64)
- // {
- // BikeLedGloFun.blBike_ForwardLedStart=FALSE;
- // }
- // }
- // }
- if(( BikeLedGloFun.blBike_BackLedSta==TRUE) &&(BikeLedGloFun.blBike_BackLedStart==TRUE))
- {
- if( BikeLedGloFun.blBike_BackLedDetErr==TRUE)
- {
- BikeLedGloFun.blBike_BackLedDetErr=FALSE;
- IO_BACKLED_ON();
- BikeLedGloFun.uwBike_BackLedDetErrTime++;
- if( BikeLedGloFun.uwBike_BackLedDetErrTime>=64)
- {
- BikeLedGloFun.blBike_BackLedStart=FALSE;
- }
- }
- }
- break;
- case DL_TIMER_IIDX_LOAD:
- GCnt++;
- // DL_GPIO_togglePins(LED_PORT, LED_LED2_PIN);
- Samp_Step++;
- // DL_Timer_clearInterruptStatus(MOTOR_PWM_INST,GPTIMER_CPU_INT_IMASK_L_SET);//
- switch (Samp_Step)
- {
- case 2:
- // gpio_bits_set(GPIOB,GPIO_PINS_11);
- // adc_enable(ADC1,FALSE);//
- tbc_voDownIsr(); //鐢垫祦 /鐢靛帇鑾峰彇 锛岃绠楁牎鍑嗙數娴侀噰鏍风偣 TMR1->c4dt=1000;// tmpSigRTrigZ1;
- // gpio_bits_reset(GPIOB,GPIO_PINS_11);
- #if(JSCOPE_EN!=0)
- Jscope_WtiteData();
- #endif
- break;
- case 4:
- // GPIOC->odt ^= GPIO_PINS_13;
- hw_uwPWMCmpr[0] = pwm_stGenOut.uwNewTIM1COMPR[0];
- hw_uwPWMCmpr[1] = pwm_stGenOut.uwNewTIM1COMPR[1];
- hw_uwPWMCmpr[2] = pwm_stGenOut.uwNewTIM1COMPR[2];
- hw_uwPWMCmpr[3] = pwm_stGenOut.uwNewTIM1COMPR[3];
- hw_uwPWMCmpr[4] = pwm_stGenOut.uwNewTIM1COMPR[4];
- hw_uwPWMCmpr[5] = pwm_stGenOut.uwNewTIM1COMPR[5];
- /* Enable PWM DMA, hw_uwPWMCmpr[0/1/2] at underflow update */
- // tmr_dma_request_enable(TMR1,TMR_OVERFLOW_DMA_REQUEST,TRUE);// TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
- // dma_channel_enable(DMA1_CHANNEL5,TRUE); //DMA_Cmd(DMA1_Channel5, ENABLE);
- // pwm_stGenOut.uwNewTIM1COMPR[0]=900 ;
- // pwm_stGenOut.uwNewTIM1COMPR[1]=1250;
- // pwm_stGenOut.uwNewTIM1COMPR[2]=450 ;
- TIMER_CC_A_INDEX(pwm_stGenOut.uwNewTIM1COMPR[0]);// DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[0], DL_TIMER_CC_0_INDEX);//A
- TIMER_CC_B_INDEX(pwm_stGenOut.uwNewTIM1COMPR[1]);// DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[1], DL_TIMER_CC_2_INDEX); //B
- TIMER_CC_C_INDEX(pwm_stGenOut.uwNewTIM1COMPR[2]);// DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, pwm_stGenOut.uwNewTIM1COMPR[2], DL_TIMER_CC_1_INDEX);//C
- // adc_enable(ADC1,TRUE);//
- DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST,2, DL_TIMER_CC_4_INDEX); //采样点设置
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- // DL_GPIO_clearPins(GPIOA, DL_GPIO_PIN_31);
- }
- /* add user code begin 1 */
- /* add user code end 1 */
|