亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stm32f10x_svpwm_3shunt.c

?? ARM_CORTEX-M3應(yīng)用實(shí)例開發(fā)詳解光盤
?? C
?? 第 1 頁 / 共 3 頁
字號:
                
                // ADC Syncronization setting value             
                if ((u16)(PWM_PERIOD-hTimePhA) > TW_AFTER)
                {
                  hTimePhD = PWM_PERIOD - 1;
                }
                else
                {
                  hDeltaDuty = (u16)(hTimePhA - hTimePhB);
                  
				  // Definition of crossing point
                  if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhA)*2) 
                  {
                      hTimePhD = hTimePhA - TW_BEFORE; // Ts before Phase A 
                  }
                  else
                  {
                      hTimePhD = hTimePhA + TW_AFTER; // DT + Tn after Phase A
                     
                    if (hTimePhD >= PWM_PERIOD)
                    {
                      // Trigger of ADC at Falling Edge PWM4
                      // OCR update
                      
                      //Set Polarity of CC4 Low
                      PWM4Direction=PWM1_MODE;
                      
                      hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
                    }
                  }
                }
                
                // ADC_InjectedChannelConfig(ADC1, PHASE_B_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);               
                ADC1->JSQR = PHASE_B_MSK + BUS_VOLT_FDBK_MSK + SEQUENCE_LENGHT;
                //ADC_InjectedChannelConfig(ADC2, PHASE_C_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);                     
                ADC2->JSQR = PHASE_C_MSK + TEMP_FDBK_MSK + SEQUENCE_LENGHT;                                         
                break;
    case SECTOR_2:
                hTimePhA = (T/8) + ((((T + wY) - wZ)/2)/131072);
				hTimePhB = hTimePhA + wZ/131072;
				hTimePhC = hTimePhA - wY/131072;
                
                // ADC Syncronization setting value
                if ((u16)(PWM_PERIOD-hTimePhB) > TW_AFTER)
                {
                  hTimePhD = PWM_PERIOD - 1;
                }
                else
                {
                  hDeltaDuty = (u16)(hTimePhB - hTimePhA);
                  
                  // Definition of crossing point
                  if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhB)*2) 
                  {
                    hTimePhD = hTimePhB - TW_BEFORE; // Ts before Phase B 
                  }
                  else
                  {
                    hTimePhD = hTimePhB + TW_AFTER; // DT + Tn after Phase B
                    
                    if (hTimePhD >= PWM_PERIOD)
                    {
                      // Trigger of ADC at Falling Edge PWM4
                      // OCR update
                      
                      //Set Polarity of CC4 Low
                      PWM4Direction=PWM1_MODE;
                      
                      hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
                    }
                  }
                }
                
                //ADC_InjectedChannelConfig(ADC1, PHASE_A_CHANNEL,1,
                //                                     SAMPLING_TIME_CK);               
                ADC1->JSQR = PHASE_A_MSK + BUS_VOLT_FDBK_MSK + SEQUENCE_LENGHT;                
                //ADC_InjectedChannelConfig(ADC2, 
                //                   PHASE_C_CHANNEL,1,SAMPLING_TIME_CK);                              
				ADC2->JSQR = PHASE_C_MSK + TEMP_FDBK_MSK + SEQUENCE_LENGHT;
                break;

    case SECTOR_3:
                hTimePhA = (T/8) + ((((T - wX) + wY)/2)/131072);
				hTimePhC = hTimePhA - wY/131072;
				hTimePhB = hTimePhC + wX/131072;
		
                // ADC Syncronization setting value
                if ((u16)(PWM_PERIOD-hTimePhB) > TW_AFTER)
                {
                  hTimePhD = PWM_PERIOD - 1;
                }
                else
                {
                  hDeltaDuty = (u16)(hTimePhB - hTimePhC);
                  
                  // Definition of crossing point
                  if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhB)*2) 
                  {
                    hTimePhD = hTimePhB - TW_BEFORE; // Ts before Phase B 
                  }
                  else
                  {
                    hTimePhD = hTimePhB + TW_AFTER; // DT + Tn after Phase B
                    
                    if (hTimePhD >= PWM_PERIOD)
                    {
                      // Trigger of ADC at Falling Edge PWM4
                      // OCR update
                      
                      //Set Polarity of CC4 Low
                      PWM4Direction=PWM1_MODE;
                      
                      hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
                    }
                  }
                }
                
                //ADC_InjectedChannelConfig(ADC1, PHASE_A_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);               
                ADC1->JSQR = PHASE_A_MSK + BUS_VOLT_FDBK_MSK + SEQUENCE_LENGHT;                
                //ADC_InjectedChannelConfig(ADC2, PHASE_C_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);                                        
				ADC2->JSQR = PHASE_C_MSK + TEMP_FDBK_MSK + SEQUENCE_LENGHT;
                break;
    
    case SECTOR_4:
                hTimePhA = (T/8) + ((((T + wX) - wZ)/2)/131072);
                hTimePhB = hTimePhA + wZ/131072;
                hTimePhC = hTimePhB - wX/131072;
                
                // ADC Syncronization setting value
                if ((u16)(PWM_PERIOD-hTimePhC) > TW_AFTER)
                {
                  hTimePhD = PWM_PERIOD - 1;
                }
                else
                {
                  hDeltaDuty = (u16)(hTimePhC - hTimePhB);
                  
                  // Definition of crossing point
                  if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhC)*2)
                  {
                    hTimePhD = hTimePhC - TW_BEFORE; // Ts before Phase C 
                  }
                  else
                  {
                    hTimePhD = hTimePhC + TW_AFTER; // DT + Tn after Phase C
                    
                    if (hTimePhD >= PWM_PERIOD)
                    {
                      // Trigger of ADC at Falling Edge PWM4
                      // OCR update
                      
                      //Set Polarity of CC4 Low
                      PWM4Direction=PWM1_MODE;
                      
                      hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
                    }
                  }
                }
                
                //ADC_InjectedChannelConfig(ADC1, PHASE_A_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);             
                ADC1->JSQR = PHASE_A_MSK + BUS_VOLT_FDBK_MSK + SEQUENCE_LENGHT;                
                //ADC_InjectedChannelConfig(ADC2, PHASE_B_CHANNEL,1,
                //                                     SAMPLING_TIME_CK);                                    
				ADC2->JSQR = PHASE_B_MSK + TEMP_FDBK_MSK + SEQUENCE_LENGHT;
                break;  
    
    case SECTOR_5:
                hTimePhA = (T/8) + ((((T + wY) - wZ)/2)/131072);
				hTimePhB = hTimePhA + wZ/131072;
				hTimePhC = hTimePhA - wY/131072;
                
                // ADC Syncronization setting value
                if ((u16)(PWM_PERIOD-hTimePhC) > TW_AFTER)
                {
                  hTimePhD = PWM_PERIOD - 1;
                }
                else
                {
                  hDeltaDuty = (u16)(hTimePhC - hTimePhA);
                  
                  // Definition of crossing point
                  if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhC)*2) 
                  {
                    hTimePhD = hTimePhC - TW_BEFORE; // Ts before Phase C 
                  }
                  else
                  {
                    hTimePhD = hTimePhC + TW_AFTER; // DT + Tn after Phase C
                    
                    if (hTimePhD >= PWM_PERIOD)
                    {
                      // Trigger of ADC at Falling Edge PWM4
                      // OCR update
                      
                      //Set Polarity of CC4 Low
                      PWM4Direction=PWM1_MODE;
                      
                      hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
                    }
                  }
                }
                
                //ADC_InjectedChannelConfig(ADC1, PHASE_A_CHANNEL,1,
                //                                   SAMPLING_TIME_CK);              
                ADC1->JSQR = PHASE_A_MSK + BUS_VOLT_FDBK_MSK + SEQUENCE_LENGHT;                
                //ADC_InjectedChannelConfig(ADC2, PHASE_B_CHANNEL,1,
                //                                     SAMPLING_TIME_CK);                                      
				ADC2->JSQR = PHASE_B_MSK + TEMP_FDBK_MSK + SEQUENCE_LENGHT;
		break;
                
    case SECTOR_6:
                hTimePhA = (T/8) + ((((T - wX) + wY)/2)/131072);
				hTimePhC = hTimePhA - wY/131072;
				hTimePhB = hTimePhC + wX/131072;
                
                // ADC Syncronization setting value
                if ((u16)(PWM_PERIOD-hTimePhA) > TW_AFTER)
                {
                  hTimePhD = PWM_PERIOD - 1;
                }
                else
                {
                  hDeltaDuty = (u16)(hTimePhA - hTimePhC);
                  
                  // Definition of crossing point
                  if (hDeltaDuty > (u16)(PWM_PERIOD-hTimePhA)*2) 
                  {
                    hTimePhD = hTimePhA - TW_BEFORE; // Ts before Phase A 
                  }
                  else
                  {
                    hTimePhD = hTimePhA + TW_AFTER; // DT + Tn after Phase A
                    
                    if (hTimePhD >= PWM_PERIOD)
                    {
                      // Trigger of ADC at Falling Edge PWM4
                      // OCR update
                      
                      //Set Polarity of CC4 Low
                      PWM4Direction=PWM1_MODE;
                      
                      hTimePhD = (2 * PWM_PERIOD) - hTimePhD-1;
                    }
                  }
                }
                
                //ADC_InjectedChannelConfig(ADC1, PHASE_B_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);     
                ADC1->JSQR = PHASE_B_MSK + BUS_VOLT_FDBK_MSK + SEQUENCE_LENGHT;                
                //ADC_InjectedChannelConfig(ADC2, PHASE_C_CHANNEL,1,
                //                                    SAMPLING_TIME_CK);                               
				ADC2->JSQR = PHASE_C_MSK + TEMP_FDBK_MSK + SEQUENCE_LENGHT;
                break;
    default:
		break;
   }
  
  if (PWM4Direction == PWM2_MODE)
  {
    //Set Polarity of CC4 High
    TIM1->CCER &= 0xDFFF;    
  }
  else
  {
    //Set Polarity of CC4 Low
    TIM1->CCER |= 0x2000;
  }
  
  /* Load compare registers values */ 
  TIM1->CCR1 = hTimePhA;
  TIM1->CCR2 = hTimePhB;
  TIM1->CCR3 = hTimePhC;
  TIM1->CCR4 = hTimePhD; // To Syncronyze the ADC
}

/*******************************************************************************
* Function Name  : SVPWM_3ShuntAdvCurrentReading
* Description    :  It is used to enable or disable the advanced current reading.
			if disabled the current readign will be performed after update event
* Input          : cmd (ENABLE or DISABLE)
* Output         : None
* Return         : None
*******************************************************************************/
void SVPWM_3ShuntAdvCurrentReading(FunctionalState cmd)
{
  if (cmd == ENABLE)
  {
    // Enable ADC trigger sync with CC4
    //ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_T1_CC4);  
    ADC1->CR2 |= 0x00001000;  //使用TIM1的CC4標(biāo)志來觸發(fā)AD轉(zhuǎn)換。
    
    // Enable UPDATE ISR
    // Clear Update Flag
    TIM_ClearFlag(TIM1, TIM_FLAG_Update);
    TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);
  }
  else
  {
    // Disable UPDATE ISR
    TIM_ITConfig(TIM1, TIM_IT_Update, DISABLE);

    // Sync ADC trigger with Update
    //ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_T1_TRGO);
    ADC1->CR2 &=0xFFFFEFFF;
    
    // ReEnable EXT. ADC Triggering
    ADC1->CR2 |=0x00008000;    
  }
}

/*******************************************************************************
* Function Name  : SVPWMUpdateEvent
* Description    :  Routine to be performed inside the update event ISR  it reenable the ext adc. triggering
		        It must be assigned to pSVPWM_UpdateEvent pointer.	
* Input           : None
* Output         : None
* Return         : None
*******************************************************************************/
void SVPWMUpdateEvent(void)
{
  // ReEnable EXT. ADC Triggering
  ADC1->CR2 |= 0x00008000;
  
  // Clear unwanted current sampling
  ADC_ClearFlag(ADC1, ADC_FLAG_JEOC);
}

/*******************************************************************************
* Function Name  : SVPWMEOCEvent
* Description    :  Routine to be performed inside the end of conversion ISR
		         It computes the bus voltage and temperature sensor sampling 
		        and disable the ext. adc triggering.	
* Input           : None
* Output         : None
* Return         : None
*******************************************************************************/
u8 SVPWMEOCEvent(void)
{
  // Store the Bus Voltage and temperature sampled values
  h_ADCTemp = ADC_GetInjectedConversionValue(ADC2,ADC_InjectedChannel_2);
  h_ADCBusvolt = ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_2);
    
  if ((State == START) || (State == RUN))
  {          
    // Disable EXT. ADC Triggering
    ADC1->CR2 = ADC1->CR2 & 0xFFFF7FFF;
  }
  return ((u8)(1));
}

#endif

/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品第一页第二页第三页| 色综合视频一区二区三区高清| 在线观看视频一区二区| 亚洲欧洲一区二区在线播放| 成人网页在线观看| 亚洲欧洲精品一区二区三区不卡| 高清不卡一区二区| 中文字幕一区二区三区视频| 91影院在线免费观看| 亚洲男同性恋视频| 欧美日韩精品久久久| 日本欧美肥老太交大片| 日韩女优av电影| 国产美女精品人人做人人爽| 国产精品乱人伦| 91极品视觉盛宴| 亚洲成av人影院在线观看网| 欧美xxxxxxxx| 成人av网站在线观看| 亚洲永久免费视频| 日韩一区二区三区在线视频| 国产麻豆精品久久一二三| 中文无字幕一区二区三区 | 久久精品日产第一区二区三区高清版| 精品一区二区三区香蕉蜜桃 | 51午夜精品国产| 久久国产婷婷国产香蕉| 国产精品三级av在线播放| 91视频www| 蜜臀av亚洲一区中文字幕| 国产欧美一区二区三区网站| 99re热这里只有精品视频| 五月天激情综合网| 国产亚洲视频系列| 欧美视频一区二区| 国产精品综合网| 亚洲韩国一区二区三区| 久久综合成人精品亚洲另类欧美 | 国产欧美精品日韩区二区麻豆天美| av日韩在线网站| 蜜臀91精品一区二区三区 | 久久先锋资源网| 色婷婷香蕉在线一区二区| 美女视频网站久久| 亚洲日本护士毛茸茸| 欧美精品一区二区三区视频| 在线观看亚洲专区| 国产二区国产一区在线观看| 午夜一区二区三区视频| 国产精品美日韩| 91精品国产综合久久精品麻豆 | 久久毛片高清国产| 欧美日韩情趣电影| 成人av动漫网站| 久久成人麻豆午夜电影| 一区二区三区欧美日| 国产日产欧美一区二区视频| 91精品国产一区二区三区| 91婷婷韩国欧美一区二区| 国产大陆精品国产| 欧美a一区二区| 亚洲一区二区高清| 日本亚洲免费观看| 亚洲视频综合在线| 国产亚洲欧洲997久久综合| 7777精品久久久大香线蕉| 色哟哟国产精品免费观看| 成人性色生活片| 国产一区91精品张津瑜| 久久99在线观看| 日韩专区一卡二卡| 亚洲成人手机在线| 一个色综合网站| 一区二区三区在线视频观看58| 欧美高清在线一区二区| 久久久99精品久久| 久久婷婷国产综合精品青草| 精品久久久久99| 91精品国产乱码| 欧美一区午夜精品| 91精品国产综合久久久久| 正在播放一区二区| 欧美夫妻性生活| 9191精品国产综合久久久久久| 欧美性猛交xxxxxxxx| 欧美日韩综合一区| 欧美巨大另类极品videosbest| 欧美在线观看你懂的| 欧亚洲嫩模精品一区三区| 91福利精品第一导航| 欧美三日本三级三级在线播放| 在线观看欧美黄色| 国产精品灌醉下药二区| 成人欧美一区二区三区视频网页| 国产精品国产三级国产aⅴ中文 | 日韩av中文在线观看| 午夜电影久久久| 蜜乳av一区二区| 国产一区二区伦理| 丰满岳乱妇一区二区三区 | 丰满亚洲少妇av| 97久久超碰国产精品电影| 色综合久久综合网97色综合| 欧美视频一区二区三区四区 | 午夜欧美2019年伦理| 日韩国产精品久久久| 国产一区二区三区四区在线观看| 国产成人免费视频精品含羞草妖精 | 欧美日韩精品一二三区| 日韩视频123| 国产欧美1区2区3区| 亚洲视频一区在线观看| 亚洲chinese男男1069| 激情综合网最新| 波多野洁衣一区| 欧美男同性恋视频网站| 久久久天堂av| 亚洲精品欧美在线| 日本免费新一区视频| 从欧美一区二区三区| 欧美日韩成人在线一区| 亚洲精品在线电影| 亚洲伦在线观看| 免费在线观看一区二区三区| 国产99久久久久| 在线成人免费观看| 国产精品不卡在线| 日韩av电影天堂| 99精品黄色片免费大全| 日韩美女一区二区三区| 18成人在线视频| 久久99最新地址| 在线观看免费一区| 日本一区二区三区国色天香| 日日欢夜夜爽一区| 91视频免费观看| 国产日韩精品一区二区三区| 亚洲bt欧美bt精品777| 成人高清伦理免费影院在线观看| 4438x成人网最大色成网站| 综合网在线视频| 韩国精品主播一区二区在线观看 | 国产传媒日韩欧美成人| 欧美人体做爰大胆视频| 亚洲欧美日韩国产一区二区三区| 激情综合色播激情啊| 欧美精选一区二区| 亚洲黄色小视频| 成人免费毛片片v| 精品免费视频.| 日本成人在线不卡视频| 欧美艳星brazzers| 国产精品传媒入口麻豆| 国产精品伊人色| 欧美videossexotv100| 日韩高清不卡在线| 在线观看日韩精品| 亚洲免费电影在线| jizzjizzjizz欧美| 国产亲近乱来精品视频| 国模一区二区三区白浆| 日韩色视频在线观看| 日韩精品高清不卡| 欧美精品一二三| 亚洲国产一区二区视频| 色婷婷久久综合| 亚洲乱码日产精品bd| 99九九99九九九视频精品| 国产精品萝li| 不卡在线观看av| 一色屋精品亚洲香蕉网站| 成人aa视频在线观看| 国产精品三级电影| jlzzjlzz亚洲日本少妇| 欧美极品aⅴ影院| 成人免费av在线| 亚洲免费在线观看| 欧美性淫爽ww久久久久无| 亚洲一区中文日韩| 欧美美女一区二区三区| 亚洲mv在线观看| 日韩一级免费观看| 经典三级视频一区| 国产人妖乱国产精品人妖| 国产成人99久久亚洲综合精品| 国产欧美日韩精品一区| 成人免费视频caoporn| 1区2区3区国产精品| 欧美性高清videossexo| 日本成人中文字幕| 久久人人爽人人爽| 99免费精品视频| 一区二区三区高清| 日韩欧美国产精品| 成人免费视频免费观看| 悠悠色在线精品| 欧美成人r级一区二区三区| 国产a级毛片一区| 亚洲精品第1页| 欧美一级夜夜爽|