//LED状态设置函数
void led_set(u8 sta)
{
LED1=sta;
}
//函数参数调用测试函数
void test_fun(void(*ledset)(u8),u8 sta)//这个看不明白的
{
ledset(sta);
}
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r)
{
int a,b;
int di;
a=0;b=r;
di=3-(r<<1); //判断下个点位置的标志
while(a<=b)
{
LCD_DrawPoint(x0+a,y0-b); //5
LCD_DrawPoint(x0+b,y0-a); //0
LCD_DrawPoint(x0+b,y0+a); //4
LCD_DrawPoint(x0+a,y0+b); //6
LCD_DrawPoint(x0-a,y0+b); //1
LCD_DrawPoint(x0-b,y0+a);
LCD_DrawPoint(x0-a,y0-b); //2
LCD_DrawPoint(x0-b,y0-a); //7
a++;
//使用Bresenham算法画圆
if(di<0)di +=4*a+6;
else
{
di+=10+4*(a-b);
b--;
}
}
}
//函数参数调用测试函数
void test_fun1(void(*LCDDrawCircle)(u16,u16,u8),u16 x0,u16 y0,u8 r)//这个看不明白的
{
LCDDrawCircle(x0,y0,r);
}
在串口助手调用void led_set(u8 sta),void test_fun(void(*ledset)(u8),u8 sta),void LCD_Draw_Circle(u16 x0,u16 y0,u8 r),这3个正常,
在串口助手调用void test_fun1(void(*LCDDrawCircle)(u16,u16,u8),u16 x0,u16 y0,u8 r),开发板程序卡死,一动不动。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>