上海电力学院电自二队技术报告
unsigned int ad_z,ad_y,ad_m,ad_fz,ad_fy,ad_zz,ad_yy; unsigned int fz,fy; unsigned int m;
unsigned int wb; unsigned int xielv1; unsigned int xielv2;
unsigned int zhidao,wandao1,wandao2;
unsigned int adchu; int
change0[41]={ -640,-620,-600,-580,-550,-510,-470,-430,-395,-345,-310,-290,-260,-220,-190,-150,-125,-90,-60,-30, 0,
30,80,110,144,170,205,240,275,310,350,400,440,460,490,530,570,590,590,590,590
};
unsigned int lucheng; int dz,dy,yjj; int xlb; // int old_xlb; int adjian1; int adjian2; int change1; int chg;
int old_change1; int dch; int change; int weizhi1; int weizhi00; int weizhi0; float weizhi01; //int wz;
//int old_wz;
float weizhi; float k1; float k2; float k;
26
上海电力学院电自二队技术报告
void ADsave() {
unsigned char n,i; n=N; ad_z=0; ad_y=0; ad_m=0; ad_fz=0; ad_fy=0; ad_zz=0; ad_yy=0;
for(;n>0;n--) {
for(i=0;i<20;i++);
if(ATD0STAT2_CCF0!=0) {
ad_z+=ATD0DR0; }
for(i=0;i<20;i++);
if(ATD0STAT2_CCF1!=0) {
ad_y+=ATD0DR1; }
for(i=0;i<20;i++); if(ATD0STAT2_CCF2!=0) {
ad_m+=ATD0DR2; }
for(i=0;i<20;i++);
if(ATD0STAT2_CCF3!=0){ ad_fz+=ATD0DR3; }
for(i=0;i<20;i++);
if(ATD0STAT2_CCF4!=0){ ad_fy+=ATD0DR4; } }
for(i=0;i<20;i++);
if(ATD0STAT2_CCF6!=0){
27
上海电力学院电自二队技术报告
ad_yy+=ATD0DR6; } */
} ad_z/=N;
ad_y/=N; ad_m/=N; ad_fz/=N;
ad_fy/=N; }
#pragma CODE_SEG NON_BANKED #pragma TRAP_PROC
void interrupt 8 isr0(void) {
TFLG1_C0F=1; qishixian=1; }
/*void interrupt 9 isr1(void) {
TFLG1_C1F=1; qishixian=1; } */
void interrupt 11 isr3(void) {
TFLG1_C3F =1; //clear interrupt request flag v++; }
void interrupt 15 isr7(void) {
TFLG1_C7F=1; TC7=TCNT+2000; speed=v; if(speed>200) speed=old_speed; old_speed=speed; v=0; flag=1; }
28
上海电力学院电自二队技术报告
#pragma CODE_SEG DEFAULT
void delay1(int i) /*24MHz--1ms*/ {
int j;
for(;i>0;i--)
for(j=0;j<4052;j++) ; }
void delay(int i) /*24MHz--10.6us*/ {
int j;
for(;i>0;i--)
for(j=0;j<41;j++); }
void main(void) {
init_PLL(); init_Duoji(); init_AD(); init_Dianji(); init_Capture3RTI(); init_7RTI(); init_qishixian0RTI(); init_qishixian1RTI(); EnableInterrupts; PORTE=0; DDRE=0xF0; DDRM&=0xc7; PERM|=0x38; DDRJ_DDRJ6=0; PORTA=0; DDRA=0XC1; delay1(1000);
ADsave(); wb=(ad_z+ad_y)/2; xielv1=(ad_m-wb)/12; xielv2=ad_m/10; fz=ad_fz;
29
上海电力学院电自二队技术报告
fy=ad_fy;
yjj=xielv2/4; shizi=0;
count=0; count1=0; count2=0; count3=0; count4=0; count5=0; count6=0; weizhi=0; type=1; for(;;) {
dwei=PTJ_PTJ6<<3; dwei|=PTM_PTM5<<2; dwei|=PTM_PTM4<<1; dwei|=PTM_PTM3;
if(dwei==0) {
zhidao=0; pvz=0; wandao1=0; pvw1=0; wandao2=0; pvw2=0;
}else if(dwei==1) {
zhidao=2000; pvz=80;
wandao1=1500; pvw1=70;
wandao2=1000; pvw2=65;
}else if(dwei==2) {
zhidao=1700; pvz=75;
wandao1=1500;
30