懸掛畫圓 C

2021-05-11 11:10:13 字數 3309 閱讀 1369

#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...