tag 标签: dspic

相关博文
  • 热度 25
    2014-4-3 09:23
    2099 次阅读|
    0 个评论
      //下面处理在整步的时候共振的消除,这里只是根据     if(stepSize == ST_FULLSTEP)     {         //下面设置的值都是经验值,可以根据电机的实际情况进行调整         int min=200, max=900;        //如果最大的速度还没有到你现在的输出速度,就不需要消除共振了          maxSpeed = abs((int)speedOut);         resonanceCompensation = OFF;         //如果确实是速度控制的模式         if(uGF.positionControl == SPEED_CONTROL)         {//整步共振点通常在这个范围             if(fullStepMode == FULLSTEP_TWO_PHASE_ON)             {                           min=300;//共振的起点                 max=750;//共振的终点             }             else//而波形驱动的在这个范围             {                 min=460;        //共振的起点                 max=600;        //共振的终点             }         }             //如果速度在上面的这些范围之内,则开启共振消除         if(maxSpeedmax maxSpeedmin)                 resonanceCompensation = ON;        //打开共振消除     }     else//否则关闭共振消除     {         resonanceCompensation = OFF;                //关闭共振消除     } //这里只是通过速度来判断共振消除的入口,在PI处理函数中,有进行共振消除的具体算法       //抗积分饱和速度的更新     if(speedOut PI_ANTI_WINDUP_SPEED speedOut -PI_ANTI_WINDUP_SPEED )     {         PI_antiWindUp =  PI_ANTI_WINDUP_GAIN1;     }     else     {         PI_antiWindUp =  PI_ANTI_WINDUP_GAIN2;     } //上面其实就是根据不同的速度,设置PI_antiWindUp的值,这里值的处理函数在PI处理函数中,有具体的算法      //定时器中断暂时关闭,防止参数的更改。       IEC0bits.T3IE = 0;            if(speedOut MINIMUM_SPEED)//如果速度不是很小,而是在最小速度以上,则分为正负速度两种情况     {         ltemp = SPEED_PRE_SCALE/speedOut;  //根据这个时钟设置和现在输出的速度设置ltemp          T2CONbits.TON = 1;                           directionFlag = MOTOR_FORWARD;   //正向,设置标志     }     else if(speedOut -MINIMUM_SPEED)     {         ltemp = SPEED_PRE_SCALE/speedOut;          T2CONbits.TON = 1;                           directionFlag = MOTOR_REVERSE;      //同上面的设置,反向     }     else         {              T2CONbits.TON = 0;                  //如果速度太小,则开启定时器,重启清零         TMR2 =0;                                     TMR3 =0;         ltemp = SPEED_PRE_SCALE/MINIMUM_SPEED;  //计算ltemp 值,以最小的速度开始计算         if(uGF.currentControlLoop == OFF)            //如果闭环关闭,则设置最大的参考值,并进行计算微步,在微步里面设置了每一步的参考电压。          maxRefValue = OPEN_LOOP_VOLTAGE;         CalcStep();     }          speed2Time = (directionFlag*ltemp*stepSizeCount)SPEED_POST_SCALE;       //根据ltemp 计算出到设定速度的时间,然后判断如果这个时间小于斩波周期,则直接设置为斩波周期。          if (speed2Time PWM_FCY)     {         speed2Time = PWM_FCY;     }     IEC0bits.T3IE = 1;      // Enable Timer2/3 interrupt } //结束速度和位置的控制,这里只是进行PI计算的一个入口,PI具体如何进行处理的算法,在PI计算函数中有讲述。
  • 热度 26
    2014-4-3 09:22
    2389 次阅读|
    0 个评论
      /******************************************************************************* * Function:     SpeedPositionControl() 速度和位置控制器,在定时器1中断中调用。 *******************************************************************************/ void SpeedPositionControl(void) {      long ltemp;     //速度计算中间量储存      int maxSpeed;   //最大速度中间量存储      //开环模式下,根据两种不同的速度源设置maxSpeed 参数     if(uGF.currentControlLoop == OFF)     {         if(uGF.speedSource == POT_REF_SPEED)    //速度由POT设置,速度源有两个,一个是POT,一个是DMCI         {             maxSpeed = potSpeed5;         //最大速度和POT速度转换         }         else  //如果速度源是DMCI,则最大速度为-1024~1024,并进行了范围限制         {             if(dmciSpeed 1024)                             maxSpeed = 1024;                          else if(dmciSpeed -1024)                 maxSpeed = -1024;             else                 maxSpeed = dmciSpeed;         }     }     else       //PI闭环模式下,直接根据不同速度源赋值     {         if(uGF.speedSource == POT_REF_SPEED)             {             maxSpeed = potSpeed;         }         else                                   {             maxSpeed = dmciSpeed;          }         //限制最大速度在 2400 RPM         if(maxSpeed 20000)                  maxSpeed = 20000;         else         if(maxSpeed -20000)              maxSpeed = -20000;         //不同的细分下,限制速度不同,在PI里面计算出速度的限制值。          if((abs(speedOut)2)(32767(stepSize)))//如果speedout=20000,16细分          {                 if(maxSpeed0)//假如maxSpeed=10000                 {                     maxSpeed = 32767(stepSize-2);  //此时限制到maxSpeed=8191,根据细分值限制,                     if(speedOut maxSpeed)       //如果实际速度比限制值大,则将输出调到限制的最大值                         speedOut = maxSpeed;                     }                     else //负向的逻辑相同,如果超出范围,则调整至限制的速度范围                 {                         maxSpeed = -(32767(stepSize-2));                     if(speedOut maxSpeed)                         speedOut = maxSpeed;                 }          }//PI的速度限制完毕     } //如果位置控制的参数改变了,则进行更新,并且将位置设置为起点     if (uGF.positionControlCopy != uGF.positionControl)     {         uGF.positionControl = uGF.positionControlCopy;         position = 0;     } //如果位置控制模式切换为速度控制,则将刚刚计算的maxSpeed赋值给全局变量。     if(uGF.positionControl == SPEED_CONTROL)         {         speedRef = maxSpeed;     }     //位置控制器,注意算法     else {         //DMCI如果发来位置的参考变化      if (dmciPositionRefCopy != dmciPositionRef)      {          dmciPositionRef = dmciPositionRefCopy;  //更新变量             positionRef = (long)dmciPositionRef*dmicPosRefScale;             //位置的倍数计算出来,赋值给位置参考变量,这里倍数为64      }             posError = positionRef - position;            //如果控制的位置还小于一个整步,则直接速度降至停机,否则采用一个什么样的速度来达到设定的位           //置,要进行计算 if((posError stepSizeCount) (posError -stepSizeCount)) {     speedRef = 0; } else    {              //最大速度必须大于0          if(maxSpeed0)              maxSpeed = -maxSpeed;        //确保溢出不会发生,也就是说,如果是设定的位置跟当前位置差距太大,直接采用最大的速度去趋                近所设定的位置          ltemp = (long)(abs(speedOut))*POS_OVERFLOW_CHECK;          if (posError ltemp)          {               speedRef = maxSpeed;          }          else          if (posError - ltemp)          {               speedRef = -maxSpeed;          }                  else        //减速点到达,切换到P控制器,这个时候才采用可变增益位置控制。也就是速度可变。          {               long posGain;              //从下面的图就可以看出来,就是为了设定一个什么样的速度去趋近设定的位置。                            //              posGain =((long)*decelerationRate/((long)abs(speedOut)));             if(posGain==0)                   posGain =1;             speedRef = (posError*posGain)15;             //通过上面的公式计算出速度的参考值。并且通过下面的算法来限制这个参考值的范围。             if (speedRef maxSpeed)                     speedRef = maxSpeed;                  else if(speedRef - maxSpeed)                     speedRef = -maxSpeed;                  else if(speedRef = MINIMUM_SPEED speedRef0)                     speedRef = MINIMUM_SPEED+1;                  else if(speedRef =- MINIMUM_SPEED speedRef0)                     speedRef = -MINIMUM_SPEED-1;          }              } }   //速度控制器     ltemp = (speedRef - speedOut);   //先计算实际输出的速度和设置的参考速度差距 if(speedOut 0) { if(ltemp accelerationRate)              { speedOut +=  accelerationRate; }//如果速度差比较多,则每次增加一个加速率。 else                                         if( ltemp -decelerationRate) { speedOut -=  decelerationRate; }//如果是减速,同样是没次减小一个减速率 else  //否则直接跳掉设定的速度                                 { speedOut = speedRef; } } else  //方向相反,计算方法一样 {      if(ltemp -accelerationRate)        {      speedOut -=  accelerationRate;      }      else                                           if( ltemp decelerationRate)      {      speedOut +=  decelerationRate;      }      else                                   {      speedOut = speedRef;      } }
  • 热度 26
    2014-4-3 09:19
    2096 次阅读|
    0 个评论
      /****************************************************************************** * Function:     StateMachine() 状态机函数,一共三个运行,关闭和初始化 *******************************************************************************/ void StateMachine(void) {     if(state == STATE_RUN)  //运行状态              { if( buttonCounter BUTTON_FILTER)//按键识别 { if((BUTTON_PIN == 1) (speedOut PI_ANTI_WINDUP_SPEED))                         //按键确实按下,且速度不是很快的情况下。 { buttonCounter = 0;       //按键识别完后,计数清零                 if(fullStepMode == FULLSTEP_TWO_PHASE_ON)      //如果是两相导通,则设置为波形模式                 {                     fullStepMode = FULLSTEP_WAVE_DRIVE;                      }                 else                                                              {         if(stepSize = MAX_STEP_RESOLUTION)//细分为64细分或者更高,则切换到整步模式              {      stateCopy = STATE_OFF;          //切换状态到OFF      fullStepMode = FULLSTEP_TWO_PHASE_ON;  //设置到整步模式                                         stepSize = ST_FULLSTEP;         //设置为整步                                         stepSizeCopy = stepSize;           //同步一下变量                                         stepSizeCount = (TABLE_SIZE)(stepSize);//整步模式,一步跨到最高的点      }      else          {           stepSize++;   //按键一次,细分数+1                                                         stepSizeCopy = stepSize;//同步参数                                          stepSizeCount = (TABLE_SIZE)(stepSize);   //这个参数保存的是跨度,比如为1时                                                                                                                        //跨度为256,为2时,跨度为127.           }                                                                      }          } } //以上按键事件处理完。然后处理DMCI设置的参数改变     if(stepSizeCopy != stepSize )     {             //如果细分是在整步到64细分的中间状态          if(stepSizeCopy =MAX_STEP_RESOLUTION stepSizeCopy = ST_FULLSTEP)          {    //在速度太大,超过抗饱和状态,就不允许进行细分切换              if(speedOut PI_ANTI_WINDUP_SPEED)                 {                               stepSize = stepSizeCopy;   //速度不大,将DMCI设置的参数读取                                          stepSizeCount = (TABLE_SIZE)(stepSize);  //设置跨度数据              }                                                              }         else     //如果是在整步和64细分状态下,则不能切换细分         {             stepSizeCopy = stepSize;        //返回现在的细分状态         }     }             //如果DMCI请求一个电流模式的切换     if (uGF.currentControlLoop != uGF.currentControlLoopCopy)             {                 //这种模式下,需要关闭中断,关闭PWM,和复位定时器,总的来说,脱机。                 IEC0bits.T3IE = 0;      //关闭定时器中断                 IEC0bits.AD1IE = 0;  // 关闭AD中断                 //关闭PWM通道          P2OVDCON = 0;          P1OVDCON = 0;                 //关闭PWM和复位定时器              P1TCONbits.PTEN = 0;              P2TCONbits.PTEN = 0;      P1TMR = 0;      P2TMR = 0;       //复位定时器              T2CONbits.TON = 0;                TMR2 =0;                TMR3 =0;           if (uGF.currentControlLoop==ON)              {                 maxRefValue = OPEN_LOOP_VOLTAGE;  //开环电压设置                      CalcStep();                                                    //计算微步                          uGF.currentControlLoop = OFF;                 //电流环控制关闭                      uGF.currentControlLoopCopy = OFF;        //同步变量也关闭               }             else                                                     {                 maxRefValue = CLOSED_LOOP_CURRENT;     //闭环电流模式                 InitPI();                                                                  //初始化PI                 CalcStep();                                                            //计算微步                 uGF.currentControlLoop = ON;                         //电流环控制打开                 uGF.currentControlLoopCopy = ON;                //同步变量打开             }             //重启PWM进入RUN模式                 P1TCONbits.PTEN = 1;          P2TCONbits.PTEN = 1;             //以及重新打开关闭的中断和开启定时器             IEC0bits.T3IE = 1;                   IEC0bits.AD1IE = 1;             T2CONbits.TON = 1;          }  //如果按键或者DMCI要求切换状态         if(state!=stateCopy )         {             state = STATE_OFF;   //只有切换到OFF状态才有效             stateCopy = state;  //加载状态            //关闭PWM          P1TCONbits.PTEN = 0;          P2TCONbits.PTEN = 0;               P2OVDCON = 0;             P1OVDCON = 0;             //速度到0             speedOut = 0;          }     //定时器溢出      if(uGF.timer1_InterruptFlag) {                     SpeedPositionControl();                                      uGF.timer1_InterruptFlag = 0; } } //状态机RUN状态完毕 else if (state==STATE_OFF)            { if( buttonCounter BUTTON_FILTER) { if(BUTTON_PIN == 1)      {                  buttonCounter = 0;          stateCopy = STATE_RUN;   } }             //以上处理按键,切换到RUN状态 if(state!=stateCopy)                     {                                state = STATE_RUN;          //只能切换到RUN状态                     state=stateCopy;     //同步一下状态                     CalcStep();                                  CalcDecay();                                         InitPI();//复位一下PI                  //使能PWM输出                     P1TCONbits.PTEN = 1;             P2TCONbits.PTEN = 1;             //定时器1中断,调用速度和位置控制器             uGF.timer1_InterruptFlag =1;         } }      else     //初始化状态     if (state==STATE_INIT)   { InitControlMode(); InitStepper(); InitPI(); state = STATE_OFF;     //切换到OFF状态 stateCopy = state;       //同步变量 } }   /****************************************************************************** * Function:     CalcDecay() 此函数根据查找表,设置寄存器的值,用来设置衰减的模式 *******************************************************************************/ void CalcDecay() {     int temp;      #ifdef BIPOLAR//两相混合式电机         temp = 0;      temp = decayTableBipolar ;//表1-1,此时为00001010 00001010      ovdPwm2 = temp 2;                          ovdPwm1 = decayTableBipolar +(temp4);       //根据temp计算出ovdPwm1的值,在setPWM中赋值给寄存器。 } /****************************************************************************** * Function:     SetPWM() //根据计算的值设置占空比等寄存器。 *******************************************************************************/ void SetPWM() { P2OVDCON = ovdPwm2; P1OVDCON = ovdPwm1;       P1DC1 = pwmOut1;      P1DC2 = pwmOut1;      P1DC3 = pwmOut2;      P2DC1 = pwmOut2; }  
  • 热度 29
    2014-4-3 09:18
    2135 次阅读|
    0 个评论
      #ifdef BIPOLAR// //看看混合衰减如何产生     if(uGF.currentControlLoop == OFF uGF.decayMode == ALTERNATE_DECAY)//OFF的话,不用PI控制模式,如果设定为混合衰减的话,执行     {         stepChangeRate = stepAmplitudeRef1*(1-2*setDir1)-stepAmplitudeRef1temp*(1-2*setDir1temp);//设置爬坡率,比如高细分当然爬的少         if(stepChangeRate 0) //旧的值减去新的值大于0,则表示电流在衰减。         {             stepChangeDecayNumber1 = stepChangeRatealtDecayScale;//快衰减的周期计算               if(stepChangeDecayNumber10)     //当然大于0,电流衰减             {                 if(stepAmplitudeRef1temp == 0)                          stepChangeDecayNumber1 = 32767;//如果是衰减到0,也就是衰减的最后一梯,则尽快衰减                 decay1 = alternateDecay;        //因为是电流的下降,所以要用快衰减                 stepChangeDecayCounter1 = 1;    //衰减计数用来开始计,在ADC程序里面有用到此参数             }             }            else                               //如果电流是爬升阶段。         {             stepChangeDecayNumber1 = 0;                   decay1 = baseDecay;                //默认的电流衰减模式为慢衰减         }                   //下面计算第二轴,计算方法相同         stepChangeRate = stepAmplitudeRef2*(1-2*setDir2)-stepAmplitudeRef2temp*(1-2*setDir2temp);         if(stepChangeRate 0)                       {             stepChangeDecayNumber2 = stepChangeRatealtDecayScale;             if(stepChangeDecayNumber20)             {                 if(stepAmplitudeRef2temp == 0)                     stepChangeDecayNumber2 = 32767;                 decay2 = alternateDecay;                         stepChangeDecayCounter2 = 1;             }             }         else                                   {             stepChangeDecayNumber2 = 0;                     decay2 = baseDecay;                          }      }     else      //如没有设置为混合衰减,则默认为慢衰减             {         decay1 = baseDecay;          decay2 = baseDecay;     }         #endif  //#ifdef BIPOLAR   //先关掉AD,先赋值完成再打开 IEC0bits.AD1IE = 0; //关AD //把上面计算结果保存到全局变量 voltageOut1 = voltageOut1temp; voltageOut2 = voltageOut2temp; stepAmplitudeRef1 = stepAmplitudeRef1temp;         stepAmplitudeRef2 = stepAmplitudeRef2temp; //如果采用了PI控制模式,则不需要设定参考值和方向,如果是衰减模式,则把方向值赋值给全局变量。     if(uGF.currentControlLoop == OFF)     {         setDir1=setDir1temp;         setDir2=setDir2temp; //并根据上面设置的值来计算衰减。此函数看后面的内容。         CalcDecay();               }     //再把AD打开。 IEC0bits.AD1IE = 1; }  
  • 热度 29
    2014-4-3 09:17
    1958 次阅读|
    0 个评论
      /****************************************************************************** * Function:     CalcStep() //这个函数用来计算微步的一个参考值,基于正弦表,并且在后面计算了衰减的模式 *******************************************************************************/ void CalcStep() {     //定义,用来存放一下会修改的参数,防止没算完的时候产生了中断     long stepChangeRate;     int voltageOut1temp,voltageOut2temp;     int stepAmplitudeRef1temp,stepAmplitudeRef2temp;//guitronic,计算出来做比较的电压值     int setDir1temp,setDir2temp;  //把方向取值,用于计算,计算完后反给全局变量     setDir1temp=setDir1;     setDir2temp=setDir2; //取得当前的电压值,用于计算下一脉冲时的跳转位置,根据方向     voltageOut1temp = voltageOut1;     voltageOut2temp = voltageOut2;     stepAmplitudeRef1temp = stepAmplitudeRef1;     stepAmplitudeRef2temp = stepAmplitudeRef2; //首先要基于你所在的相限以及方向来确定跳转值。比如1轴如果是在第一相限,从余弦0点开始,则2轴有两种可能,1种为正弦,滞后90度为正值,一种是超前90度为负值。 if(stepCountTABLE_SIZE_MUL2)       //判断位置,如果是在第一相限和第二相限,这里stepCount为一个正弦波被分为1024份,90度被分为256份,也就是最大为256细分。 {     if(stepCountTABLE_SIZE) //如果是90度以内,为第一相限 { //这个好计算,就是DAC输出的参考电压值,计算出此时的电压值。此时2轴有两种可能。 stepAmplitudeRef1temp = (int)(((long)sineTable *maxRefValue)15);            voltageOut1temp = stepAmplitudeRef1temp;      //这个时候把相位的这个电压值赋值给输出电压,这个电压用于跟采样做比较。                                   setDir1temp = FORWARD;                                        //这个方向我定义为正,只是一个相对的方向   if(fullStepMode==FULLSTEP_WAVE_DRIVE || stepSizeST_FULLSTEP)    //有两种模式,一种是波形驱动,也就是整步,一种是细分。            {//如果是在细分模式                 if(directionFlag == MOTOR_FORWARD)                      {//方向为正,开始计算轴2的位置,同样计算出余弦的参考电压值,这个时候计算的值应该是负值。         stepAmplitudeRef2temp = (int)(((long)sineTable *maxRefValue)15);                                            //这个值也好计算,比如刚刚为6,余弦值32745,则正弦表位置为256-6-1。                                          voltageOut2temp = stepAmplitudeRef2temp;         setDir2temp = FORWARD;   //此时2轴为正,电流为正向                                           }     else                                                                               {//也有可能另外一个轴是领先你90度,负向,此时电压为负值,大小和正向是一样的。          stepAmplitudeRef2temp = -(int)(((long)sineTable *maxRefValue)15);          voltageOut2temp = PWM_MAX + (stepAmplitudeRef2temp);//这里为什么要加上PWM_MAX,这个应该是做峰值电流设置的一个抵消          setDir2temp = REVERSE;             //输出为负,方向为反向         }      } } else {//这个是第二相,计算方法同上所示 if(fullStepMode==FULLSTEP_WAVE_DRIVE || stepSizeST_FULLSTEP)     {//这里,是从0开始,也就是说,并且为负值。         stepAmplitudeRef1temp =  - (int)(((long)sineTable *maxRefValue)15);           voltageOut1temp = PWM_MAX + (stepAmplitudeRef1temp);//同上面的道理,应该加上PWM_MAX.         setDir1temp = REVERSE;                //此时参考轴电流为负。现在可以看出来,setDir1temp 这个参数是用来定义参考轴的电流方向,不是转向     }     if(directionFlag == MOTOR_FORWARD)                 //如果是正向转,则另外一轴为正向最大,或者反转,为负向最大          {      stepAmplitudeRef2temp = (int)(((long)sineTable *maxRefValue)15); //正向最大      voltageOut2temp = stepAmplitudeRef2temp;      setDir2temp = FORWARD;                                  //值为正,电流方向为正向      }      else                                                                                   {         stepAmplitudeRef2temp =  - (int)(((long)sineTable *maxRefValue)15);//此时为负值最大。     voltageOut2temp =  PWM_MAX + (stepAmplitudeRef2temp);//同样加上PWM_MAX      setDir2temp = REVERSE;                              //值为负,2轴电流为反向      } } } //第三相限,还是负值,从负值最大变化到0 else { if(stepCountTABLE_SIZE_MUL3) { stepAmplitudeRef1temp = - (int)(((long)sineTable *maxRefValue)15);    //这个好计算 voltageOut1temp = PWM_MAX + (stepAmplitudeRef1temp);//负值,加上PWM_MAX  setDir1temp = REVERSE;                                                        //轴电流方向为负值,还是要分超前还滞后两种情况 if(fullStepMode==FULLSTEP_WAVE_DRIVE || stepSizeST_FULLSTEP)                        {          if(directionFlag == MOTOR_FORWARD)                         {          stepAmplitudeRef2temp = - (int)(((long)sineTable *maxRefValue)15);                             //此时为负值,从0点开始          voltageOut2temp = PWM_MAX + (stepAmplitudeRef2temp);          setDir2temp = REVERSE;//电流为负,2轴为反向。     }     else                                                                        {         stepAmplitudeRef2temp = (int)(((long)sineTable *maxRefValue)15);  //后面计算方法类似         voltageOut2temp = stepAmplitudeRef2temp;         setDir2temp = FORWARD;                                                        }            }  } else { if(fullStepMode==FULLSTEP_WAVE_DRIVE || stepSizeST_FULLSTEP)        {     stepAmplitudeRef1temp = (int)(((long)sineTable *maxRefValue)15);       voltageOut1temp = stepAmplitudeRef1temp;     setDir1temp = FORWARD;                                                 } if(directionFlag == MOTOR_FORWARD)                                           {              stepAmplitudeRef2temp = - (int)(((long)sineTable *maxRefValue)15);      voltageOut2temp =  PWM_MAX + (stepAmplitudeRef2temp);      setDir2temp = REVERSE;                                                     } else               { stepAmplitudeRef2temp = (int)(((long)sineTable *maxRefValue)15);          voltageOut2temp = stepAmplitudeRef2temp;      setDir2temp = FORWARD;                                    } } } // 上面通过对4个相限的计算,通过 stepCount 来确定位置,通过超前还是滞后,也就是正传还是反转来确定另外一个轴的值,这样我们获得了一个输出的 voltageOut2temp 值,并且设置好电流正负的标志。
相关资源
  • 所需E币: 0
    时间: 2022-7-27 16:03
    大小: 2.18MB
    上传者: ZHUANG
    基于dsPIC单片机的全数字磁通门传感器设计
  • 所需E币: 1
    时间: 2021-9-26 17:17
    大小: 1.06MB
    上传者: Argent
    分享一下关于单片机的相关资料文档,感兴趣的网友可以自行下载。单片机是芯片开发的基础,相信从中会获得您意想不到的知识。学习蓝牙技术,掌握无线智能开发,了解蓝牙底层及上层应用开发,协议栈的问题需要不断学习各个层级的关系及编程规范。
  • 所需E币: 0
    时间: 2021-9-26 17:17
    大小: 4.02MB
    上传者: Argent
    分享一下关于单片机的相关资料文档,感兴趣的网友可以自行下载。单片机是芯片开发的基础,相信从中会获得您意想不到的知识。学习蓝牙技术,掌握无线智能开发,了解蓝牙底层及上层应用开发,协议栈的问题需要不断学习各个层级的关系及编程规范。
  • 所需E币: 1
    时间: 2021-3-12 15:24
    大小: 175.62KB
    上传者: ZHUANG
    单片机与DSP结合的dsPIC芯片
  • 所需E币: 0
    时间: 2021-3-8 21:10
    大小: 2.39MB
    上传者: czd886
    基于dsPIC单片机的光伏LED照明系统设计
  • 所需E币: 3
    时间: 2019-12-26 00:29
    大小: 730.68KB
    上传者: givh79_163.com
    dsPIC对于直流无刷BLDC无传感器电机控制的应用笔记(中文)……
  • 所需E币: 5
    时间: 2020-1-1 23:26
    大小: 574.27KB
    上传者: 16245458_qq.com
    ThischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeusingthedsPIC®DSCLineEchoCancellationLibrary.Itemsdiscussedinthischapterinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•RecommendedReading•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistorydsPICDSCLineEchoCancellationLibraryUser’sGuide2005-2011MicrochipTechnologyInc.DS70170DNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMi……
  • 所需E币: 3
    时间: 2020-1-1 23:25
    大小: 870.91KB
    上传者: 978461154_qq
    ThischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeusingthedsPIC®DSCAcousticEchoCancellationLibrary.Itemsdiscussedinthischapterinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•RecommendedReading•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistorydsPICDSCAcousticEchoCancellationLibraryUser’sGuide2004-2011MicrochipTechnologyInc.DS70134FNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheopera……
  • 所需E币: 5
    时间: 2020-1-1 23:25
    大小: 1.01MB
    上传者: quw431979_163.com
    ThisprefacecontainsgeneralinformationthatwillbeusefultoknowbeforeusingthedsPIC®DSCNoiseSuppressionLibrary.Itemsdiscussedinthischapterinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistorydsPICDSCNoiseSuppressionLibraryUser’sGuide2004-2011MicrochipTechnologyInc.DS70133ENotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMicrochip’sDataSheets.Mostlikely,theper……
  • 所需E币: 3
    时间: 2019-12-25 04:00
    大小: 1.52MB
    上传者: 978461154_qq
    dsPICDSCNoiseSuppressionLibraryUser'sGuidedsPICDSCNOISESUPPRESSIONLIBRARYUSER’SGUIDE2008MicrochipTechnologyInc.DS70133DNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingth……
  • 所需E币: 3
    时间: 2019-12-25 04:00
    大小: 1.01MB
    上传者: givh79_163.com
    dsPICDSCAcousticEchoCancellationLibraryUser'sGuidedsPICDSCAcousticEchoCancellationLibraryUser’sGuide2008MicrochipTechnologyInc.DS70134CNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMicrochip’sDataSheets.Mostlik……
  • 所需E币: 4
    时间: 2019-12-25 04:00
    大小: 514.54KB
    上传者: 微风DS
    dsPICDSCDTMFDetectionLibraryUser'sGuidedsPICDSCDTMFDETECTIONLIBRARYUSER’SGUIDE2010MicrochipTechnologyInc.DS70332BNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMicrochip’sDataSheets.Mostlikel……
  • 所需E币: 5
    时间: 2019-12-25 04:00
    大小: 1.15MB
    上传者: wsu_w_hotmail.com
    dsPICDSCSpeechCodingSolutionsUser'sGuidedsPICDSCSPEECHCODINGSOLUTIONSUSER’SGUIDE2007MicrochipTechnologyInc.DS70295ANotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatin……
  • 所需E币: 3
    时间: 2019-12-25 03:59
    大小: 2.94MB
    上传者: 16245458_qq.com
    dsPICDEMMCLVDevelopmentBoardUser'sGuidedsPICDEMTMMCLVDEVELOPMENTBOARDUSER’SGUIDE2008MicrochipTechnologyInc.DS70331ANotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificatio……
  • 所需E币: 3
    时间: 2019-12-25 03:59
    大小: 642.63KB
    上传者: 微风DS
    FilterDesignfordsPICDSCFilterDesignfordsPICDSCDigitalFilterDesignandAnalysisSystemMomentumDataSystems,Inc.Copyright/TrademarkInformationCopyright2008MomentumDataSystems17330BrookhurstStreet,Suite230FountainValley,CA92708Worldrightsreserved.Nopartofthispublicationmaybestoredinaretrievalsystem,transmitted,orreproducedinanyway,includingbutnotlimitedtophotocopy,photograph,magneticorotherrecord,withouttheprioragreementandwrittenpermissionofMomentumDataSystems.Informationinthismanualissubjecttochangewithoutnoticeanddoesnotrepresentacommit-mentonthepartofMomentumDatasystems.Thesoftwaredescribedinthisreferenceguideisfurnishedunderalicenseagreementandmaybeusedorco……
  • 所需E币: 4
    时间: 2019-12-25 03:57
    大小: 412.51KB
    上传者: 978461154_qq
    MATLAB/SimulinkDeviceBlocksetsfordsPICDSCsMATLAB/SimulinkDeviceBlocksetsfordsPICDSCs2009MicrochipTechnologyInc.DS51771BNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMicrochip’sDataSheets……
  • 所需E币: 3
    时间: 2019-12-24 19:04
    大小: 553.93KB
    上传者: rdg1993
    ThisprefacecontainsgeneralinformationthatwillbeusefultoknowbeforeusingthedsPIC®DSCAutomaticGainControl(AGC)Library.Itemsdiscussedinthischapterinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•RecommendedReading•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistorydsPICDSCAutomaticGainControl(AGC)LibraryUser’sGuide2009-2011MicrochipTechnologyInc.DS70611BNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificati……
  • 所需E币: 3
    时间: 2019-12-24 19:02
    大小: 977.99KB
    上传者: 微风DS
    ThischaptercontainsgeneralinformationthatisusefultoknowbeforeyoubeginusingthedsPIC®DSCSpeechEncoding/DecodingLibraries.Itemsdiscussedinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•RecommendedReading•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistorydsPICDSCSPEECHCODINGSOLUTIONSUSER’SGUIDE2010MicrochipTechnologyInc.DS70295BNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatin……
  • 所需E币: 5
    时间: 2019-12-24 19:02
    大小: 1.12MB
    上传者: 二不过三
    ThischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeusingthedsPIC®DSCSpeexSpeechEncoding/DecodingLibraryUser’sGuide.Itemsdiscussedinthisprefaceinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•RecommendedReading•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistorydsPICDSCSpeexSpeechEncoding/DecodingLibraryUser’sGuide2008-2011MicrochipTechnologyInc.DS70328CNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperati……
  • 所需E币: 5
    时间: 2019-12-24 19:01
    大小: 1.49MB
    上传者: 二不过三
    Thischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeusing16-bitlanguagetools.Itemsdiscussedinclude:•DocumentLayout•ConventionsUsedinthisGuide•RecommendedReading•TheMicrochipWebSite•myMicrochipPersonalizedNotificationService•CustomerSupportMPLABASSEMBLER,LINKERANDUTILITIESforPIC24MCUsanddsPICDSCsUser’sGuide2003-2011MicrochipTechnologyInc.DS51317JNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificat……