123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482 |
- /* 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 "tmag5273.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);
- gAdcResult0[10] =
- DL_ADC12_getMemResult(ADC12_1_INST, DL_ADC12_MEM_IDX_5);
- // 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)
- {
- uint32_t gpioA = DL_GPIO_getEnabledInterruptStatus(GPIOA, DL_GPIO_PIN_26);
- //BAT灯
- #if 0
- if ((gpioA & DL_GPIO_PIN_26) == DL_GPIO_PIN_26)
- {
- if(BikeLedCheck_F.uwBike_OpenLedEn!=0)
- {
- BikeLedCheck_F.uwBikeLight_PWM=0;
- CLMPF++;
- }
- else
- {
- if( BikeLedCheck_F.blBike_LedSta==TRUE)
- {
- if(BikeLedCheck_F.uwBike_OpenPreTime<=2)
- {
- BikeLedCheck_F.uwBike_OpenPreTime=2;
- CMPF++;
- BikeLedCheck_F.uwBikeLight_PWM=LIGHT_SECTPWM;//LIGHT_SECTPWM;
- }
- }
- }
- if( BikeLedCheck_F.blBike_LedSta==TRUE)
- BikeLedCheck_F.blBike_LedCurErr=TRUE;
- CHMPF++;
- DL_GPIO_clearInterruptStatus(GPIOA, DL_GPIO_PIN_26);
- }
- #endif
- /* add user code begin TMR3_GLOBAL_IRQ 0 */
- #if 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);
- }
- #endif
- /* 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)
- {
- switch (DL_TimerA_getPendingInterrupt(TIMA1))
- {
- case DL_TIMER_IIDX_ZERO:
- {
- if(( Samp_Step==0) ||( Samp_Step>=4))
- {
- Samp_Step=1;
- }
- else
- {
- Samp_Step++;
- }
- switch (Samp_Step)
- {
- case 1:
- {
- // DL_GPIO_setPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
- tbc_voUpIsr();
- // DL_GPIO_clearPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
- break;
- }
- case 3:
- {
- if(cp_ulSystickCnt > 3000)
- {
- Tmag5273_out.Angle = tmag5273_GetAngle();
- }
- break;
- }
- default:
- break;
- }
- break;
- }
- case DL_TIMER_IIDX_LOAD:
- {
- Samp_Step++;
- switch (Samp_Step)
- {
- case 2:
- {
- // DL_GPIO_setPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
- tbc_voDownIsr();
- // DL_GPIO_clearPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
- GCnt++;
- if(bikespeed_stFreGetOut.uwCaputureOverflowCnt<60000)
- {
- bikespeed_stFreGetOut.uwCaputureOverflowCnt++;
- }
- if(cadence_stFreGetOut.uwCaputureOverflowCnt<60000)
- {
- cadence_stFreGetOut.uwCaputureOverflowCnt++;
- }
- tbs_voIsr();//20241017
- TIMER_CC_A_INDEX(pwm_stGenOut.uwNewTIM1COMPR[0]);
- TIMER_CC_B_INDEX(pwm_stGenOut.uwNewTIM1COMPR[1]);
- TIMER_CC_C_INDEX(pwm_stGenOut.uwNewTIM1COMPR[2]);
- #if(JSCOPE_EN!=0)
- Jscope_WtiteData();
- #endif
- // DL_GPIO_clearPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
- break;
- }
- case 4:
- {
- break;
- }
- default:
- break;
- }
- break;
- }
- default:
- break;
- }
- }
- /* add user code begin 1 */
- /* add user code end 1 */
|