资源简介
比较全的代码,基本包含dspic30f系列单片机的各个模块,作为参考,还是有一定价值的
代码片段和文件信息
//#include
//#include “basicTYPE.h“
typedef unsigned char BYTE; // 8-bit
typedef unsigned short int WORD; // 16-bit
typedef unsigned long DWORD;
/*
typedef union _BYTE_VAL
{
BYTE val;
struct
{
unsigned char b0:1;
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
} bits;
} BYTE_VAL;
*/
WORD UG U0;
WORD YK;
WORD TA;
WORD T_ALFJ;
BYTE ALFJ;
BYTE KPKIKD;
signed short int EKEK1EK2;
signed long int DYK;
int main(void)
{
signed short int temp1temp2temp3;
signed long int temp4;
KP=40;
KI=2;
KD=24;
TA=10000;
UG=900;
U0=1000;
YK=29000;
while(1)
{
EK2=EK1; //先前的EK2抛弃,由原先的EK1替代
EK1=EK; //由原先的EK替代 ;
EK=(UG-U0); //新的EK,直接写(UG-U0)/5会出错前面会被当成无符号数计算
temp1=(EK-EK1)*KP;
temp2=EK*KI;
temp3=(EK2+EK-EK1*2)*KD;
DYK=temp1+temp2+temp3; //
temp4=(signed long int)(YK); //为防止溢出强行转换成4个字节有符号数
temp4=temp4+DYK; //
if(temp4<=1) //边界处理
temp4=1;
else if(temp4>0xffff) //
temp4=0xffff; //
YK=(WORD) (temp4); //类型转换need to be
T_ALFJ=TA-((DWORD)TA)*((DWORD)YK)/65536; //得处理ALFJ的限制,由于是限制角度,不得先求时间,此处代码需要处理。
if(T_ALFJ<20) //0度控制,1度55us左右
{
T_ALFJ=20;
}
//****************************************************************
//显示要矫正
ALFJ=180-(BYTE)(((DWORD)YK*180)/65536); //不加关键字BYTE,将导致结果失真,原因待研究
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 710 2008-04-14 10:03 DSPIC30\PID.mcp
文件 80896 2008-04-14 11:35 DSPIC30\PID.mcw
文件 1920 2008-04-14 09:30 DSPIC30\PID.c
文件 2540 2006-10-25 16:01 DSPIC30\basicTYPE.h
文件 29 2008-04-14 09:30 DSPIC30\PID.tagsrc
文件 1452 2008-04-14 09:30 DSPIC30\PID.mptags
文件 49781 2008-03-30 14:47 DSPIC30\p30f4011.gld
文件 6247 2008-04-14 10:03 DSPIC30\PID.map
文件 2295 2008-04-14 10:02 DSPIC30\PID.o
文件 2609 2008-04-14 10:03 DSPIC30\PID.cof
文件 1752 2008-04-14 10:03 DSPIC30\PID.hex
文件 652 2008-04-14 10:03 DSPIC30\PID.sdb
文件 12166 2008-04-14 10:03 DSPIC30\PID.lst
文件 18344 2008-04-14 10:03 DSPIC30\PID.rlf
文件 3142 2008-04-14 10:03 DSPIC30\PID.obj
文件 3508 2008-04-14 10:03 DSPIC30\PID.sym
文件 1256 2008-04-14 10:03 DSPIC30\PID.hxl
文件 1389 2008-04-14 11:35 DSPIC30\PID.mcs
文件 2540 2006-10-25 16:01 DSPIC30\basicTYPE-MCC30.h.bak
文件 854 2008-04-18 10:22 DSPIC30\REOUT\4011_REOUT.mcp
文件 78848 2008-04-24 11:28 DSPIC30\REOUT\4011_REOUT.mcw
文件 231 2008-04-21 17:39 DSPIC30\REOUT\REOUT.c
文件 81586 2008-04-21 17:39 DSPIC30\REOUT\4011_REOUT.map
文件 37 2008-04-21 17:39 DSPIC30\REOUT\4011_REOUT.tagsrc
文件 533 2008-04-21 17:39 DSPIC30\REOUT\4011_REOUT.mptags
文件 39162 2008-04-21 17:39 DSPIC30\REOUT\REOUT.o
文件 73620 2008-04-21 17:39 DSPIC30\REOUT\4011_REOUT.cof
文件 2518 2008-04-21 17:39 DSPIC30\REOUT\4011_REOUT.hex
文件 1888 2008-04-24 11:28 DSPIC30\REOUT\4011_REOUT.mcs
文件 138 2008-04-18 10:38 DSPIC30\RFOUT\RFOUT.C
............此处省略98个文件信息
- 上一篇:铣刀头cad图纸
- 下一篇:API接口模板word/Excel
评论
共有 条评论