#include "iom16v.h"
#include "math.h"
#include "macros.h"
#include "delayms.h"
#include "液晶顯示模組.c"
#include "148編碼鍵盤.c"
#define lx 55 //x軸總長度(cm)
#define ly 60 //y軸總長度(cm)
#define ax1 (ax+10)
#define ay1 (ly-ay)
#define bx1 (bx+10)
#define by1 (ly-by)
#define ax2 (lx-ax+10)
#define ay2 (ly-ay)
#define bx2 (lx-bx+10)
#define by2 (ly-by)
// ax,ay,bx,by;//o座標系的兩點,a為初點,b為末點
// ax1,ay1,bx1,by1;//o1座標系的兩點,a為初點,b為末點
// ax2,ay2,bx2,by2;//o2座標系的兩點,a為初點,b為末點
//float dl1,dl2;
//dl1=sqrt(bx1*bx1+by1*by1)-sqrt(ax1*ax1+ay1*ay1);//o1座標系差值》0伸長,<0縮短
//dl2=sqrt(bx2*bx2+by2*by2)-sqrt(ax2*ax2+ay2*ay2);//o2座標系差值》0伸長,<0縮短
//-------------------------------變數定義------------------------------------------
const uchar tab=;//四拍時序
char x_num=0,y_num=0;//----------陣列元素計數
uchar num_x=0,num_y=0;//---------計數變數(週期)
uchar test=0;//------------------位檢測變數
uchar cycle_y,cycle_x;//---------電機時序的週期
uint n_x=0,n_y=0;//-------------電機所走拍數
//-------------------------------埠初始化----------------------------------------
void port_init(void)
//-------------------------------定時器t0初始化-----------------------------------
void timer0_init(void)
//-------------------------------t0溢位中斷服務程式-------------------------------
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
void x_z_run()//-------------------x-正轉---------------------------------
if(num_x==21)
if((x_num<0)||(x_num>3))
x_num=0;
}
}void x_f_run()//---------------x-反轉-------------------
if(num_x==21)
if((x_num<0)||(x_num>3))
x_num=3;
}
}void y_z_run()//-----------------y-正轉----------------
if(num_y==21)
if((y_num<0)||(y_num>3))
y_num=0;
}
}void y_f_run()//------------------y-反轉----------------
if(num_y==21)
if((y_num<0)||(y_num>3))
y_num=3;
}
}void init_devices(void)
/***********************點到點*******************/
void d_d(uchar x_1,uchar y_1,uchar x_2,uchar y_2)
else
if(dl2<0)
else
n_1=dl1/0.0255;//計算脈衝個數,0.0245*10000
n_2=dl2/0.0255;//計算脈衝個數,0.0245*10000
if(test&bit(4))//-------------------dl1為正-m1-伸長-順時針
}else//-------------------------m1-縮短
}if(test&bit(5))//------------------dl2為正-m2-伸長-逆時針
}else//-----------------------m2-縮短}}
/***********************畫圓************************/
void yuan(uchar r,uchar a,uchar b)
else
if(dl2<0)
else
dl1=dl1*10000;//dl1擴大10000倍
dl2=dl2*10000;//dl2擴大10000倍
n_1=dl1/245;//計算脈衝個數,0.0245*10000
n_2=dl2/245;//計算脈衝個數,0.0245*10000
if(test&bit(4))//-------------------dl1為正-m1-伸長-順時針
}else//-------------------------m1-縮短
}if(test&bit(5))//------------------dl2為正-m2-伸長-逆時針
}else//-----------------------m2-縮短
}ax=bx;
ay=by;//-----------------------起始點轉換
}portb = 0x0f;
portd = 0x0f;
}void main()
//if((o_k&bit(7))&&(o_k&bit(6)))//}
}
C 關於懸掛指標
如果乙個地方指標既不為空,也沒有被設定為指向乙個已知的物件,則這樣的指標稱為懸掛指標。在程式裡面是很危險的事 如下 include stdafx.h include iostream using namespace std typedef string t void f int p int main...
C 指標懸掛 筆記
別怕摔跤,總會摔的 感謝 1.char p new char 10 給p分配一塊有10個位元組的記憶體,並把這塊記憶體的開始位址放在p中 2.所謂指標懸掛是指 指標指向了一塊沒有分配給使用者使用的記憶體 3.良好的程式設計習慣是 首先給指標初始化為乙個0值 注意我這裡沒有用空值,因為空值這個術語含義...
C 畫圓角矩形
protected void page load object sender,eventargs e public static void drawroundrectangle graphics g,pen pen,rectangle rect,int cornerradius public sta...