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

📄 pid.h

📁 该工程是对TMS320VC5416芯片的一个PID算法的实现例子
💻 H
字号:
// VC5416DSP's registers
#define REGISTERCLKMD (*(unsigned int *)0x58)
#define WAITSTATUS (*(unsigned int *)0x28)
#define	TIM		*(int *)0x24
#define	PRD     *(int *)0x25
#define	TCR		*(int *)0x26
#define	IMR		*(int *)0x0
#define	IFR		*(int *)0x1		
#define	PMST	*(int *)0x1d	
#define SPSA0 *(unsigned int *)0x38	//缓冲串口子地址寄存器
#define SPSD0 *(unsigned int *)0x39
#define SPSA1 *(unsigned int *)0x48
#define SPSD1 *(unsigned int *)0x49

// ICETEK-VC5416-A's registers
ioport unsigned char port3002;	
ioport unsigned char port8000;	
ioport unsigned char port8001;	
ioport unsigned char port8002;	
ioport unsigned char port8003;	
ioport unsigned char port8004;	
ioport unsigned char port8005;	
ioport unsigned char port8007;	

// functions
void InitDSPBoard();				// 初始化DSP系统板程序
void InitCTR();						// 初始化CTR程序
void SetForMotorB();				// 设置驱动直流电机B程序
void interrupt time(void);			// 定时器中断服务程序
void PIDControl(int rk,int yk);		// PID算法控制程序
char ConvertScanToChar(unsigned char cScanCode);	// 键盘扫描码转换成相应字符程序
void ShowParameters();				// 显示参数

void LCDPutString(unsigned int *pData,int x,int y,unsigned int nCharNumber,unsigned color);

// for CTR.lib
struct struLCDGraph struGraph,struGraph1;
unsigned int nScreenBuffer[1024];

// for LCD control
#define LCDDELAY 1
#define LCDCMDTURNON 0x3f
#define LCDCMDTURNOFF 0x3e
#define LCDCMDSTARTLINE 0xc0
#define LCDCMDPAGE 0xb8
#define LCDCMDVERADDRESS 0x40
#define LCDLEFTPAGE 0
#define LCDRIGHTPAGE 1
#define LCDDATABYTE 1
#define LCDDATAWORD 2
#define STRINGREVERSE 1
#define STRINGNOREVERSE 0

unsigned int numbers[104]=
{
//--  0123456789  --  **  宋体, 12  **
// 当前所选字体下一个汉字对应的点阵为:  宽度x高度=80x16,  调整后为: 80x16
0x0000,0x0FE0,0x1010,0x2008,0x2008,0x1010,0x0FE0,0x0000,
0x0000,0x2010,0x2010,0x3FF8,0x2000,0x2000,0x0000,0x0000,
0x0000,0x3070,0x2808,0x2408,0x2208,0x2188,0x3070,0x0000,
0x0000,0x1830,0x2008,0x2088,0x2088,0x1148,0x0E30,0x0000,
0x0000,0x0700,0x04C0,0x2420,0x2410,0x3FF8,0x2400,0x0000,
0x0000,0x19F8,0x2108,0x2088,0x2088,0x1108,0x0E08,0x0000,
0x0000,0x0FE0,0x1110,0x2088,0x2088,0x1118,0x0E00,0x0000,
0x0000,0x0038,0x0008,0x3F08,0x00C8,0x0038,0x0008,0x0000,
0x0000,0x1C70,0x2288,0x2108,0x2108,0x2288,0x1C70,0x0000,
0x0000,0x00E0,0x3110,0x2208,0x2208,0x1110,0x0FE0,0x0000,
0x00F0,0x2108,0x1CF0,0x0300,0x1EE0,0x2118,0x1E00,0x0000,	// %
0x0100,0x0100,0x0100,0x1FF0,0x0100,0x0100,0x0100,0x0000,	// +
0x0000,0x0100,0x0100,0x0100,0x0100,0x0100,0x0100,0x0100		// -
};

// strings---------------------------------------------------------------
unsigned int str1[128]=
{
//--  PID算法控制实验   --  **  宋体, 12  **
// 当前所选字体下一个汉字对应的点阵为:  宽度x高度=128x16,  调整后为: 128x16
0x2008,0x3FF8,0x2108,0x0108,0x0108,0x0108,0x00F0,0x0000,
0x0000,0x2008,0x2008,0x3FF8,0x2008,0x2008,0x0000,0x0000,
0x2008,0x3FF8,0x2008,0x2008,0x2008,0x1010,0x0FE0,0x0000,
0x0808,0x0807,0x8BFA,0x6AAA,0x1EAE,0x0AAA,0x0AAA,0x0AA8,
0x0AAC,0xFEAB,0x0AAA,0x0BFE,0x080A,0x0802,0x0802,0x0000,
0x0410,0x0460,0xFE01,0x01C6,0x0030,0x4100,0x6110,0x5110,
0x4D10,0x43FF,0x4110,0x4110,0x5110,0xE110,0x0100,0x0000,
0x0208,0x4208,0x8108,0x7FFF,0x0088,0x0048,0x4000,0x4298,
0x4248,0x4228,0x7E0A,0x422C,0x4248,0x42D8,0x4008,0x0000,
0x0000,0x0050,0x3F4F,0x014A,0x0148,0xFFFF,0x2148,0x6148,
0x3F48,0x0000,0x0FFC,0x4000,0x8000,0x7FFF,0x0000,0x0000,
0x0000,0x8210,0x820C,0x4204,0x424C,0x23B4,0x1294,0x0A05,
0x07F6,0x0A04,0x1204,0xE204,0x4214,0x020C,0x0204,0x0000,
0x0802,0x08FA,0x0482,0x2482,0x40FE,0x3F80,0x2240,0x2C60,
0x2158,0x2E46,0x2048,0x3050,0x2C20,0x2320,0x2020,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
};

unsigned int str2[32]=
{
//--  设定  --  **  宋体, 12  **
// 当前所选字体下一个汉字对应的点阵为:  宽度x高度=32x16,  调整后为: 32x16
0x0040,0x0041,0x7FCE,0x2004,0x9000,0x8080,0x4040,0x43BE,
0x2C82,0x1082,0x1082,0x2CBE,0x43C0,0xC040,0x4040,0x0000,
0x4000,0x2010,0x180C,0x07A4,0x0824,0x1024,0x2025,0x7FE6,
0x4224,0x4224,0x4224,0x4224,0x4014,0x400C,0x0004,0x0000
};

unsigned int str3[32]=
{
//--  测速  --  **  宋体, 12  **
// 当前所选字体下一个汉字对应的点阵为:  宽度x高度=32x16,  调整后为: 32x16
0x0408,0xFC31,0x0386,0x0060,0x8000,0x47FE,0x3002,0x0FF2,
0x1002,0x67FE,0x0000,0x07F8,0x4000,0x8000,0x7FFF,0x0000,
0x4040,0x2042,0x1FCC,0x2000,0x4804,0x49E4,0x4524,0x4324,
0x7FFF,0x4124,0x4324,0x4524,0x4DE4,0x4004,0x4000,0x0000
};

unsigned int str4[32]=
{
//--  输入  --  **  宋体, 12  **
//当前所选字体下一个汉字对应的点阵为:  宽度x高度=32x16,  调整后为: 32x16
0x0444,0x04F4,0x044F,0xFFE4,0x0244,0x0264,0xFF90,0x4A98,
0x8A94,0x7F93,0x0014,0x3F98,0x8008,0xFFD0,0x0010,0x0000,
0x4000,0x2000,0x1000,0x0800,0x0601,0x0183,0x0076,0x0018,
0x0060,0x0080,0x0300,0x0400,0x1800,0x3000,0x1000,0x0000
};

unsigned int str5[32]=
{
//--  调整  --  **  宋体, 12  **
//当前所选字体下一个汉字对应的点阵为:  宽度x高度=32x16,  调整后为: 32x16
0x0020,0x0021,0x1FEE,0x8804,0x4400,0x3000,0x0FFF,0x0029,
0x0FA9,0x04BF,0x04A9,0x4FA9,0x8001,0x7FFF,0x0000,0x0000,
0x0000,0x4204,0x4374,0x7AD4,0x43FF,0x42D4,0x4374,0x7E04,
0x4B10,0x4B0C,0x4AB7,0x4A44,0x42B4,0x430C,0x0104,0x0000
};

unsigned int str6[32]=
{
//--  误差  --  **  宋体, 12  **
// 当前所选字体下一个汉字对应的点阵为:  宽度x高度=32x16,  调整后为: 32x16
0x0040,0x0041,0x3FCE,0x1004,0x8800,0x4240,0x225F,0x1251,
0x0A51,0x07D1,0x0A51,0x1251,0x225F,0xE240,0x4200,0x0000,
0x4080,0x2088,0x10A8,0x48A8,0x46A9,0x45AE,0x44EA,0x44B8,
0x7CA8,0x44AC,0x44AB,0x44AA,0x44A8,0x4088,0x4080,0x0000
};

unsigned int str7[48]=
{
//--  占空比  --  **  宋体, 12  **
// 当前所选字体下一个汉字对应的点阵为:  宽度x高度=48x16,  调整后为: 48x16
0x0000,0x0000,0x7F80,0x2080,0x2080,0x2080,0x20FF,0x2088,
0x2088,0x2088,0x2088,0x7F88,0x0008,0x0008,0x0000,0x0000,
0x0010,0x400C,0x4084,0x4144,0x4124,0x4114,0x4105,0x7F06,
0x4104,0x4114,0x4124,0x4144,0x4084,0x4014,0x000C,0x0000,
0x0000,0x0000,0x7FFF,0x2020,0x1020,0x0820,0x0020,0x0000,
0x3FFF,0x4040,0x4040,0x4040,0x4020,0x4020,0x7820,0x0000
};

⌨️ 快捷键说明

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