91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

該代碼需要復制到非中文路徑下,使用開發環境MPLAB IDE 8.01或更高版本。 該開發環境需安裝有MCC30編譯器。

資源截圖

代碼片段和文件信息


//---------------------------------------------------------------------------------------------------------
// 文件名: ClosedLoop.c
//
//??工程節點包括以下三個:?
// 1.?主節點:??????????????CloseLoop.c ??
// 2.?芯片鏈接器描述文件:??p30f3010.gld ?
//??????3.?PID運算匯編節點:?????PID.s
//---------------------------------------------------------------------------------------------------------

#include?

//--------------------------芯片配置字設置-------------------------------
_FOSC(CSW_FSCM_OFF?&?XT_PLL16);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON?&?BORV_20?&?PWRT_64?&?MCLR_EN);
//-----------------------------------------------------------------------

typedef?signed?int?SFRAC16;

#define?FCY??20000000 ????? //?xtal?=?5Mhz;?PLLx16?->?20?MIPS?(運行速度20MIPS)
#define?FPWM?19531 ????? //?PWM頻率設置為19.5?kHz?避免產生人能聽到的噪音
#define?_10MILLISEC 10
#define?_50MILLISEC 50
#define?_100MILLISEC 100
#define?_500MILLISEC 500

#define?HALLA 1 //?RB3
#define?HALLB 2 //?RB4
#define?HALLC 4 //?RB5
#define?CW 0 //?電機順時針方向(CCW)轉動標志位
#define?CCW 1 //?電機反時針方向(?CW)轉動標志位
#define?Switch_2?(!PORTCbits.RC14)

//?計算周期?Period?=?TMRClock?*?6?/?RPM
//?例如轉速?RPM?=?6000?(最大速度)
//?周期?????Period?=?(20000000?/?64)?*?6?/?6000?=?312.5
//??????????RPM?=?60?(最小轉速)
//?周期?????Period?=?(20000000?/?64)?*?6?/?60?=?31250

#define?MINPERIOD 313 //?對于?6000?max?rpm?和?10?極電機
#define?MAXPERIOD 31250 //?對于?60?min?rpm?和?10?極電機
#define?MINABSSPEED 327
#define?MAXABSSPEED?32663

//?當使用floats來初始化有符號16-bit小數變量時使用這個宏??
#define?SFloat_To_SFrac16(Float_Value)?(((Float_Value)<0.0)?(SFRAC16)(32768*(Float_Value)-0.5):(SFRAC16)(32767*(Float_Value)+0.5))

void?SixStepComm(int?_Current_Sector?int?_Required_Voltage); //?換向操作(根據轉子的位置)
void?InitADC10(void); //?初始化?ADC(用于速度指令)
void?InitMCPWM(void); //?初始化?PWM為20kHz?中心對齊?互補對稱模式,500?ns死區
void?InitTMR1(void); //?初始化?TIMER1?(使用速度控制和電機停止保護)
void?InitTMR3(void); //?初始化?TIMER3?(作為兩個輸入捕捉通道的時基)
void?InitUserInt(void); //?初始化所有端口?(輸入和輸出)?
void?Init_IC_and_CN(void); //?初始化輸入捕捉和電平變換中斷CN?(用于霍爾傳感器輸入)
void?RunMotor(void); //?初始化所有變量和中斷(用于啟動和運行電機)?
void?StopMotor(void); //?清零所有標志位?停止和電機控制相關的操作,禁止PWM
void?ForceCommutation(void); //?當電機低速運行,該函數強制換向
void?ChargeBootstraps(void); //?在電機運行起始階段?對bootstrap?電容進行充電
extern?void?SpeedControl(void); //?該函數包含所有匯編和C函數,進行速度PID環路控制
extern?void?SpeedCalculation(void);

//?工程里用到的標志位
struct?
{
unsigned?MotorRunning :1;
unsigned?MotorCommInAdv?:1;
unsigned?MotorAdvEnabled:1;
unsigned?unused :13;
}Flags;
?
unsigned?int?HallValue; //?霍爾輸入值
unsigned?int?Sector; //?當前扇區值
unsigned?int?LastSector; //?最后一個扇區的值,對于濾除因為硬件濾波導致的慢轉換速率引起的錯誤信號
unsigned?int?MotorStalledCounter?=?0; //?每?1?ms加1?每次檢測到新扇區即清零.用于強制換向和電機零速保護

//? 電機接線端子 ?????? | MCLV板連接
//?-------------------------|-------------------
// 白(相)???

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????目錄??????????0??2008-06-18?02:03??PID_Lab

?????文件??????21643??2007-06-01?14:27??PID_Lab\Close_Loop.c

?????文件??????44496??2007-06-01?14:27??PID_Lab\Close_Loop.o

?????文件??????41631??2006-03-24?14:54??PID_Lab\ClosedLoop.o

?????文件???????4338??2006-03-24?14:54??PID_Lab\foo.o

?????文件??????40709??2005-04-26?04:24??PID_Lab\p30f3010.gld

?????文件??????13364??2007-06-01?14:27??PID_Lab\PID.o

?????文件???????5003??2007-06-01?14:27??PID_Lab\PID.s

?????文件??????78767??2007-06-01?14:27??PID_Lab\PID_test.cof

?????文件???????9380??2007-06-01?14:27??PID_Lab\PID_test.hex

?????文件??????67641??2007-06-01?14:27??PID_Lab\PID_test.map

?????文件????????861??2007-05-21?21:02??PID_Lab\PID_test.mcp

?????文件??????95744??2008-06-18?02:26??PID_Lab\PID_test.mcw

?????文件???????7844??2007-06-01?14:27??PID_Lab\PID_test.mptags

?????文件????????103??2007-06-01?14:27??PID_Lab\PID_test.tagsrc

?????文件????????146??2008-06-18?02:23??PID_Lab\說明.txt

?????文件???????2651??2008-06-18?02:26??PID_Lab\PID_test.mcs

-----------?---------??----------?-----??----

???????????????434321????????????????????17


評論

共有 條評論