⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dspicservo.h

📁 dc servo using dspic30f
💻 H
字号:
//---------------------------------------------------------------------
//	File:		dspicservo.h
//
//	Written By:	Lawrence Glaister VE7IT
//
// Purpose: Various header info for the project
//      // 
//---------------------------------------------------------------------
//
// Revision History// March 11 2006 --   formatted into multi file project
// Sept 25 2006 -  6x pwm rate
//---------------------------------------------------------------------- // define which chip we are using (peripherals change)
#include <p30f4012.h>

// the following version string is printed on powerup (also in every object module)
#define CPWRT  "\r\ndspic-servo by L.Glaister\r\n"
#define VERSION "(c) 25-Sept-2006 by VE7IT"

// this number was tweaked by hand until serial port baud was correct
#define FCY  (6000000 * 16 / 4)       // 24 MIPS ==> 6mhz osc * 16pll  / 4

/* define required pwm rate... dont make it too high as we loose resolution */
#define FPWM 24000		// 48000 gives approx +- 10 bit current control

// define some i/o bits for the various modules
#define STATUS_LED 	_LATE1		
#define SVO_DIR     _LATE2
#define PID_ACTIVE  _LATE3
#define SVO_ENABLE   _RE8

// for some reason PI may not be defined in math.h on some systems
#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endif

#define	TRUE	(1)#define	FALSE	(0)	
struct PID{    long int command;	/* commanded value */    long int feedback;	/* feedback value */    float error;		/* command - feedback */    float deadband;		/* param: deadband */    float maxerror;		/* param: limit for error */    float maxerror_i;	/* param: limit for integrated error */    float maxerror_d;	/* param: limit for differentiated error */    float maxcmd_d;		/* param: limit for differentiated cmd */    float error_i;		/* opt. param: integrated error */    float prev_error;	/* previous error for differentiator */    float error_d;		/* opt. param: differentiated error */    long int prev_cmd;	/* previous command for differentiator */    float cmd_d;		/* opt. param: differentiated command */    float bias;			/* param: steady state offset */    float pgain;		/* param: proportional gain */    float igain;		/* param: integral gain */    float dgain;		/* param: derivative gain */    float ff0gain;		/* param: feedforward proportional */    float ff1gain;		/* param: feedforward derivative */    float maxoutput;	/* param: limit for PID output */    float output;		/* the output value */    short enable;		/* enable input */
    short limit_state;	/* 1 if in limit, else 0 */
	short multiplier;	/* pc command multiplier */
	short ticksperservo; /* number of 100us ticks/servo cycle */
    short cksum;		/* data block cksum used to verify eeprom */
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -