12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550 |
- /* 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);
- 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_8 | DL_GPIO_PIN_26);
- uint32_t gpioB = DL_GPIO_getEnabledInterruptStatus(GPIOB, DL_GPIO_PIN_3 | DL_GPIO_PIN_2);
- //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( ((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);
- }
- /* 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:
- 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);
- // ECnt++;
- 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
- ECnt++;
- // 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;
- // }
- // }
- // }
- 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;
- GCnt++;
- // 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 */
|