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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main_natural_pwm.c

?? avr atmega frimily 使用PWM控制交流電機
?? C
字號:
/**
* @file main.c
*
* Copyright (c) 2004 Atmel.
*
* @brief Ce fichier permet de commander un moteur asynchrone par une loi en U/f
*
* This file is included by all source files in order to access to system wide
* configuration.
* @version 1.0 (CVS revision : 1.6)
* @date 2006/03/08 17:02:28 (created on 06/04/2004)
* @author raubree (created by Emmanuel David)

*****************************************************************************/


#include "config.h"
#include "inavr.h"

#pragma vector = TIMER0_COMPA_vect
__interrupt void Tech(void);

#pragma vector = ADC_vect
__interrupt void Read_measure(void);

#define   MAX_THETA   120 // one quarter of the circle
#define MAX_THETAx2   240
#define MAX_THETAx3   360
#define MAX_THETAx4   480

#define	    MAX_PWM  2666
// 64MHz (PLL frequency) / 2666 / 2 = 12 kHz (PWM frequency)

#define      DeadTime  32     // 32 => temps mort = 0.5 祍
#define      MAX_AMPLITUDE  ((MAX_PWM / 2) - DeadTime)

#define      K_scal    32 // used for the angle integrator


volatile U8   Flag_IT_timer0=0;
volatile U8   Flag_IT_ADC=0 ;
U16           Softcounter = 0 ;

S16           Omega_meas;
S16           Omega_ref = -160;
S16           Command = 0;
U16           theta1=0, theta2=160, theta3=320 ;

U16           amplitude , OmegaTe = 64 ;
U8            direction = 0 ;
U16           PWM0, PWM1, PWM2;
U8            Counter_PE1;


// U16        DACoutput;

void   ADC_Init(void);
void   ADC_start_conv(void);
void   DAC_Init(void);
void   init(void);
void   PSC_Init(unsigned int ot0,  unsigned int ot1);
void   PSC0_Load (unsigned int dt0, unsigned int dt1);
void   PSC1_Load (unsigned int dt0, unsigned int dt1);
void   PSC2_Load (unsigned int dt0, unsigned int dt1);
void PSC_Load (unsigned int dt0a,  unsigned int dt1a,
               unsigned int dt0b,  unsigned int dt1b,
               unsigned int dt0c,  unsigned int dt1c);
S16    mc_control_speed_16b(S16 speed_ref , S16 speed_measure);
U16    controlVF(U16 wTs);
S16    read_acquisition(void) ;
U16    duty_cycle(U16 theta, U16 Vm) ;



/**
* @brief main
*/
void main(void)
{

  /* remove CKDIV8 fuse effect  */
  CLKPR = 0x80;
  CLKPR = 0x00;


  init();
//  DAC_Init();
  ADC_Init();


  PSC_Init(0x00, MAX_PWM);


  while(1)
  {

      if (Flag_IT_timer0) /* 0.5 mS */
       {

        if (Counter_PE1 != 0)
        {
          Counter_PE1 --;
        }
        else
        {
          Toggle_PE1();
          Counter_PE1 = 250;
        }

        ADC_start_conv();
        Flag_IT_timer0 = 0;

        // generates speed reference steps in the software
        Softcounter += 1 ;
        if (Softcounter ==  2500) {
          Omega_ref = -320 ;
         } //-128; }
        if (Softcounter == 5000)
         {
           Omega_ref= -160 ;
         }
        if (Softcounter == 7500)
         {
           Omega_ref= 160 ;
         }
        if (Softcounter == 10000)
         {
           Omega_ref= 320 ;
           Softcounter = 0 ;
         }

       }

      if (Flag_IT_ADC)
       {
         // get the measured speed from the ADC
         Omega_meas = read_acquisition();

         // compute the stator frequency (PI controller)
         // Command = mc_control_speed_16b(Omega_ref,Omega_meas);
         // Command = Omega_ref ; // command with the generated steps
//         Command = (25 * (256 + 18 - Omega_meas))/8; // command with the 0-10V input
         Command = ((512 - Omega_meas)*16) / 10; // command with the on board pot

         // direction management : extract sign and absolute value
         if (Command > (S16)(0) ) {
           direction = 0 ;
           OmegaTe = Command;
         }
          else {
            direction = 1 ;
            OmegaTe = (~Command) + 1;
         }

         //direction = 0 ;

         if ( OmegaTe > K_scal )
         {
         // ------------------------ V/f law --------------------------
           amplitude = controlVF(OmegaTe);

           if (amplitude > MAX_AMPLITUDE) { amplitude = MAX_AMPLITUDE ; }

         // ------------------ natural PWN algorithm ------------------
           PWM0 = duty_cycle(theta1,amplitude);
           PWM1 = duty_cycle(theta2,amplitude);
           PWM2 = duty_cycle(theta3,amplitude);
         }
         else /* null speed */
         {
           PWM0 = 0;
           PWM1 = 0;
           PWM2 = 0;

         }


         // -------- load the PSCs with the new duty cycles -----------
         if (direction==0)
         {
            PSC_Load (PWM0, PWM0+DeadTime, PWM1, PWM1+DeadTime, PWM2, PWM2+DeadTime);
         }
         else
         {
            PSC_Load (PWM0, PWM0+DeadTime, PWM2, PWM2+DeadTime, PWM1, PWM1+DeadTime);
         }

    // 3 integrators for the evolution of the angles
    theta1 = ((U32)K_scal*theta1 + OmegaTe) / K_scal ;
    theta2 = theta1 + 160 ;
    theta3 = theta1 + 320 ;

    if (theta1>=MAX_THETAx4) {theta1 -= MAX_THETAx4;Toggle_PC7();}
    if (theta2>=MAX_THETAx4) theta2 -= MAX_THETAx4;
    if (theta3>=MAX_THETAx4) theta3 -= MAX_THETAx4;

    Flag_IT_ADC=0;

   }

   /* test the overcurrent input */
   if (( PIFR0 & (1<<PEV0A)) !=0 )
   {
     /* fault on overcurrent */
     Set_PC7();
     Set_PC3();
     Clear_PE1();
     while (1) ;
   }
  }
}

// interrupt vector for the sampling period (Ts=1 ms)
__interrupt void Tech(void) {
  Flag_IT_timer0 = 1;
}

// interrupt vector for the ADC (end of conversion)
__interrupt void Read_measure(void) {
    Flag_IT_ADC = 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜影院久久久| 亚洲精品一区二区三区四区高清| 日本美女视频一区二区| 亚洲精品国产精华液| 欧美国产精品一区二区| 精品国内片67194| 欧美大片日本大片免费观看| 91精品国产福利在线观看 | 51久久夜色精品国产麻豆| 色94色欧美sute亚洲线路二| 91在线国产福利| 色成人在线视频| 欧美日韩久久不卡| 91精品国产一区二区三区蜜臀 | 亚洲精品亚洲人成人网 | 亚洲自拍偷拍网站| 亚洲制服丝袜av| 婷婷夜色潮精品综合在线| 午夜精品福利一区二区三区蜜桃| 亚洲欧美国产高清| 亚洲成人av福利| 美国十次综合导航| 国产成人av一区二区三区在线| 国产精品一区二区在线观看不卡| 精品一区二区三区免费视频| 国产丶欧美丶日本不卡视频| 不卡av在线网| 欧美精品日韩一本| 久久综合成人精品亚洲另类欧美| 久久精品亚洲精品国产欧美 | 亚洲人成精品久久久久| 亚洲国产视频直播| 国内精品不卡在线| 9人人澡人人爽人人精品| 欧美日精品一区视频| 精品国产伦一区二区三区观看方式| 欧美国产激情二区三区 | 777奇米四色成人影色区| 精品福利在线导航| 亚洲一区二区偷拍精品| 久久99国产精品麻豆| 99精品热视频| 欧美精品一区二区三区蜜臀| 国产精品久久二区二区| 日韩精品高清不卡| caoporm超碰国产精品| 在线播放国产精品二区一二区四区 | 91成人免费网站| 久久品道一品道久久精品| 亚洲女爱视频在线| 国产jizzjizz一区二区| 欧美男男青年gay1069videost| 国产区在线观看成人精品 | 免费xxxx性欧美18vr| 99热在这里有精品免费| 日韩一区二区三区免费看| 中文字幕中文字幕中文字幕亚洲无线| 奇米影视一区二区三区| 欧美亚洲禁片免费| 国产精品美女久久久久aⅴ| 免费精品99久久国产综合精品| 99精品欧美一区二区三区综合在线| 精品免费99久久| 五月天激情综合网| 欧美中文字幕一区二区三区亚洲| 欧美一级高清片在线观看| 亚洲一区二区三区自拍| 91视频免费观看| 中日韩免费视频中文字幕| 国产主播一区二区| 日韩视频一区二区三区| 日韩中文字幕一区二区三区| 欧洲激情一区二区| 亚洲黄色免费电影| 色综合久久综合中文综合网| 国产精品美女久久久久久久| 国产成人啪午夜精品网站男同| 精品国产3级a| 国产精品综合av一区二区国产馆| 欧美不卡激情三级在线观看| 日本欧美大码aⅴ在线播放| 欧美精品九九99久久| 性欧美大战久久久久久久久| 欧美性大战久久久| 一区二区三区高清在线| 欧美视频完全免费看| 亚洲sss视频在线视频| 欧美情侣在线播放| 青娱乐精品视频| 精品国产伦一区二区三区免费| 久久精品国产一区二区三| 日韩你懂的在线播放| 国产在线国偷精品免费看| 国产肉丝袜一区二区| www.欧美日韩| 亚洲影视在线观看| 777奇米成人网| 国产一区二区精品久久99| 日本一区二区高清| 色爱区综合激月婷婷| 肉肉av福利一精品导航| 欧美xxxx老人做受| 成人在线视频一区二区| 亚洲欧美综合另类在线卡通| 欧美性生交片4| 美女网站色91| 国产精品久久毛片| 欧美日韩精品一区二区| 久久精品免费看| 亚洲少妇屁股交4| 911精品国产一区二区在线| 激情欧美一区二区| 亚洲乱码精品一二三四区日韩在线| 欧美日韩精品一区二区三区蜜桃 | 亚洲国产欧美在线| 精品999在线播放| 成人国产电影网| 天天亚洲美女在线视频| 国产欧美日韩三级| 欧美日本高清视频在线观看| 国产精品一区二区不卡| 一区二区三区四区中文字幕| 日韩视频在线一区二区| 色综合久久综合| 国产福利精品一区二区| 日韩在线a电影| 亚洲欧洲av色图| 精品国产一区二区三区久久久蜜月 | 99re这里只有精品首页| 免费高清成人在线| 一区二区三区不卡视频| 久久免费午夜影院| 9191成人精品久久| 欧美自拍丝袜亚洲| 成人性色生活片免费看爆迷你毛片| 日韩和的一区二区| 亚洲精品一二三四区| 亚洲国产成人在线| 欧美成人猛片aaaaaaa| 欧美色男人天堂| 色婷婷精品大在线视频 | 亚洲天堂免费看| 日本一区二区三区电影| 精品少妇一区二区三区| 欧美精品一二三四| 欧美日韩在线精品一区二区三区激情| 成人看片黄a免费看在线| 国产一区二区三区免费看| 免费人成在线不卡| 奇米色一区二区| 琪琪久久久久日韩精品| 秋霞影院一区二区| 日本不卡不码高清免费观看| 亚洲成人黄色影院| 婷婷综合五月天| 三级一区在线视频先锋| 亚洲综合999| 午夜久久久久久久久久一区二区| 亚洲在线视频一区| 亚洲一区二区精品视频| 亚洲国产成人精品视频| 亚洲综合色自拍一区| 一区二区三区自拍| 亚洲国产美国国产综合一区二区| 夜色激情一区二区| 偷拍一区二区三区| 欧美aa在线视频| 国产精品中文字幕欧美| 国产精品一区久久久久| 成人av在线影院| 在线视频欧美精品| 日韩精品中文字幕一区二区三区 | 麻豆国产精品视频| 国产精品亚洲专一区二区三区| 久久国产精品无码网站| 国产精品影视网| 91同城在线观看| 欧美日韩国产bt| 久久尤物电影视频在线观看| 中文天堂在线一区| 亚洲自拍偷拍欧美| 久久国产精品第一页| 成人午夜av电影| 欧美三级日韩三级| 欧美本精品男人aⅴ天堂| 中文字幕在线不卡国产视频| 亚洲一区在线观看免费| 国内外成人在线视频| 91免费版在线| 欧美一卡2卡3卡4卡| 国产精品女人毛片| 丝袜美腿一区二区三区| 高清不卡一区二区| 欧美日韩另类一区| 中文字幕电影一区| 欧美aaa在线| 91福利国产成人精品照片| 欧美成人三级电影在线| 一区二区三区四区五区视频在线观看 | 91免费观看在线|