Beispiel #1
0
/******************************主界面显示********************************/
void Menu_Init(void)
{
	OLED_Write_Char(0, yiwei(i,i), 43);
	OLED_Write_String(2,yiwei(0,i),"AI ");
	OLED_Write_String(2,yiwei(2,i),"BI ");
	OLED_Write_String(2,yiwei(4,i),"CI ");
	OLED_Write_String(2,yiwei(6,i),"DI ");
	OLED_Write_String(2,yiwei(8,i),"F1 ");
	OLED_Write_String(2,yiwei(10,i),"F2 ");
	OLED_Write_String(2,yiwei(12,i),"SD ");
	OLED_Write_Num2(7,yiwei(0,i),a1);
	OLED_Write_String(9,yiwei(0,i),"  ");
	OLED_Write_Num2(7,yiwei(2,i),a2);
	OLED_Write_String(9,yiwei(2,i),"  ");
	OLED_Write_Num2(7,yiwei(4,i),a3);
	OLED_Write_String(9,yiwei(4,i),"  ");
	OLED_Write_Num2(7,yiwei(6,i),a4);
	OLED_Write_String(9,yiwei(6,i),"  ");
	OLED_Write_Num4(7,yiwei(8,i),FTMDuty_1);
	OLED_Write_Num4(7,yiwei(10,i),FTMDuty_2);
	OLED_Write_String(7,yiwei(12,i),"    ");
	
	//上移
	if(Key_up == 0)
	{
		DelayMs(100);
		if(Key_up == 0)
		{
			OLED_Write_Char(0,yiwei(i,i), ' ');
			i = i - 2;
			if(i == -2) i = 12;
		}
	}
	
	//下移
	if(Key_down == 0)
	{
		DelayMs(100);
		if(Key_down == 0)
		{
			OLED_Write_Char(0,yiwei(i,i), ' ');
			i = i + 2;
			if(i == 14) i = 0;
		}
	}
	
	//a1
	if(yiwei(i,i) == yiwei(0,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a1++;
				if(a1 >= 50) a1 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a1--;
				if(a1 <= 0) a1 = 50;
			}
		}
	}
	//a2
	if(yiwei(i,i) == yiwei(2,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a2++;
				if(a2 >= 50) a2 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a2--;
				if(a2 <= 0) a2 = 50;
			}
		}
	}
	//a3
	if(yiwei(i,i) == yiwei(4,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a3++;
				if(a3 >= 50) a3 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a3--;
				if(a3 <= 0) a3 = 50;
			}
		}
	}
	//a4
	if(yiwei(i,i) == yiwei(6,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a4++;
				if(a4 >= 50) a4 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a4--;
				if(a4 <= 0) a4 = 50;
			}
		}
	}

	//FTMDuty_1
	if(yiwei(i,i) == yiwei(8,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				FTMDuty_1 += 50;
				if(FTMDuty_1 >= 3000) FTMDuty_1 = 3000;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				FTMDuty_1 -= 50;
				if(FTMDuty_1 <= 0) FTMDuty_1 = 0;
			}
		}
	}
	
	//FTMDuty_2
	if(yiwei(i,i) == yiwei(10,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				FTMDuty_2 += 50;
				if(FTMDuty_2 >= 3000) FTMDuty_2 = 3000;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				FTMDuty_2 -= 50;
				if(FTMDuty_2 <= 0) FTMDuty_2 = 0;
			}
		}
	}
	
	//SD
	if(yiwei(i,i) == yiwei(12,i))
	{
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				OLED_Clear();
				SD_D = 0;
				flag_sd_d = 1;
			}
		}
	}
	//打开ccd测试
	if(Key_2 == 0)
	{
		DelayMs(100);
		if(Key_2 == 0)
		{
			OLED_Clear();
			flag_test = 1;
			SD_X = 0;
			PIT_Start(PIT1);
			FTM_PWM_ChangeDuty(FTM0_CH3_PA6,FTMDuty_1);
		}
	}
	//发车
	if(Key_1 == 0)
	{
		DelayMs(50);
		if(Key_1 == 0)
		{
			OLED_Clear();
			flag_run = 1;
			PIT_Start(PIT1);
			FTM_PWM_ChangeDuty(FTM0_CH3_PA6,FTMDuty_1);
		}
	}
	
}
Beispiel #2
0
/******************************主界面显示********************************/
void Menu_Init(void)
{
	OLED_Write_Char(0, yiwei(i,i), 43);
	OLED_Write_String(2,yiwei(0,i),"AI ");
	OLED_Write_String(2,yiwei(2,i),"BI ");
	OLED_Write_String(2,yiwei(4,i),"CI ");
	OLED_Write_String(2,yiwei(6,i),"DI ");
	OLED_Write_String(2,yiwei(8,i),"EI ");
	OLED_Write_String(2,yiwei(10,i),"F1 ");
	OLED_Write_String(2,yiwei(12,i),"F2 ");
	OLED_Write_String(2,yiwei(14,i),"SD ");
	OLED_Write_Num2(7,yiwei(0,i),a1);
	OLED_Write_Num2(7,yiwei(2,i),a2);
	OLED_Write_Num2(7,yiwei(4,i),a3);
	OLED_Write_Num2(7,yiwei(6,i),a4);
	OLED_Write_Num2(7,yiwei(8,i),a5);
	OLED_Write_Num4(7,yiwei(10,i),FTMDuty_1);
	OLED_Write_Num4(7,yiwei(12,i),FTMDuty_2);
	OLED_Write_String(7,yiwei(14,i),"    ");
	OLED_Write_String(9,yiwei(8,i),"    ");
	OLED_Write_String(9,yiwei(6,i),"    ");
	OLED_Write_String(9,yiwei(4,i),"    ");
	OLED_Write_String(9,yiwei(2,i),"    ");
	
	//上移
	if(Key_up == 0)
	{
		DelayMs(100);
		if(Key_up == 0)
		{
			OLED_Write_Char(0,yiwei(i,i), ' ');
			i -= 2;
			if(i == -2) i = 14;
		}
	}
	
	//下移
	if(Key_down == 0)
	{
		DelayMs(100);
		if(Key_down == 0)
		{
			OLED_Write_Char(0,yiwei(i,i), ' ');
			i += 2;
			if(i == 16) i = 0;
		}
	}
	
	//a1
	if(yiwei(i,i) == yiwei(0,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a1++;
				if(a1 >= 30) a1 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a1--;
				if(a1 <= 0) a1 = 30;
			}
		}
	}
	//a2
	if(yiwei(i,i) == yiwei(2,i))
	{
		//加
		if(Key_right == 0)
		{
			
			DelayMs(50);
			if(Key_right == 0)
			{
				a3++;
				if(a3 >= 50) a3 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a3--;
				if(a3 <= 0) a3 = 50;
			}
		}
	}
	//a4
	if(yiwei(i,i) == yiwei(6,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a4++;
				if(a4 >= 50) a4 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a4--;
				if(a4 <= 0) a4 = 50;
			}
		}
	}
	
	//a5
	if(yiwei(i,i) == yiwei(8,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				a5++;
				if(a5 >= 50) a5 = 0;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				a5--;
				if(a5 <= 0) a5 = 50;
			}
		}
	}

	//FTMDuty_1
	if(yiwei(i,i) == yiwei(10,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				FTMDuty_1 += 50;
				if(FTMDuty_1 >= 3000) FTMDuty_1 = 3000;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				FTMDuty_1 -= 50;
				if(FTMDuty_1 <= 0) FTMDuty_1 = 0;
			}
		}
	}
	
	//FTMDuty_2
	if(yiwei(i,i) == yiwei(12,i))
	{
		//加
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				FTMDuty_2 += 50;
				if(FTMDuty_2 >= 3000) FTMDuty_2 = 3000;
			}
		}
		//减
		if(Key_left == 0)
		{
			DelayMs(50);
			if(Key_left == 0)
			{
				FTMDuty_2 -= 50;
				if(FTMDuty_2 <= 0) FTMDuty_2 = 0;
			}
		}
	}
	
	//SD
	if(yiwei(i,i) == yiwei(14,i))
	{
		if(Key_right == 0)
		{
			DelayMs(50);
			if(Key_right == 0)
			{
				OLED_Clear();
				OLED_Write_String(0,0,"SD reading");
				SD_D = 0; //扇区
				SD_Flag = 1;
			}
		}
	}
	//打开ccd测试
	if(Key_2 == 0)
	{
		DelayMs(100);
		if(Key_2 == 0)
		{
			OLED_Clear();
			CCD_Flag = 1;
			SD_X = 0;
			PIT_Start(PIT1);
		}
	}
	//发车
	if(Key_1 == 0)
	{
		DelayMs(50);
		if(Key_1 == 0)
		{
			OLED_Clear();
			Run_Flag = 1;
			PIT_Start(PIT1);
		}
	}
}
Beispiel #3
0
int qixing(int n,int p,int q)            /* 返回空点p q在n方向上的棋型号 n为1-8方向 从右顺时针开始数 */ 

{

    int k,m=0;  /* 棋型号注解:  己活000-003 己冲010-013 对活100-103 对冲110-113 己空活020-023 己空冲030-033 对空活120-123 对空冲130-133 空-1 边界冲-2 边界空冲-3*/

    yiwei(n,&p,&q);

    if(p<0||p>14||q<0||q>14) k=-2;                                      /* 边界冲棋型 */

    switch(qipan[q][p]){

        case COM:{

                    m++; yiwei(n,&p,&q);

                    if(p<0||p>14||q<0||q>14) { k=m+9; return k; }

                    while(qipan[q][p]==COM) { m++; yiwei(n,&p,&q); if(p<0||p>14||q<0||q>14) { k=m+9; return k; } }

                    if(qipan[q][p]==SPA) k=m-1;                         /* 己方活棋型 */

                     else k=m+9;                                         /* 己方冲棋型 */

                 }break;

        case MAN:{

                    m++; yiwei(n,&p,&q);

                    if(p<0||p>14||q<0||q>14) { k=m+109; return k; }

                    while(qipan[q][p]==MAN) { m++; yiwei(n,&p,&q); if(p<0||p>14||q<0||q>14) { k=m+109; return k; } }

                    if(qipan[q][p]==SPA) k=m+99;                         /* 对方活棋型 */

                    else k=m+109;                                        /* 对方冲棋型 */

                 }break;

        case SPA:{

                    yiwei(n,&p,&q);

                    if(p<0||p>14||q<0||q>14) { k=-3; return k; }         /* 边界空冲棋型 */

                    switch(qipan[q][p]){

                    case COM:{

                                m++; yiwei(n,&p,&q);

                                if(p<0||p>14||q<0||q>14) { k=m+29; return k; }

                                while(qipan[q][p]==COM) { m++; yiwei(n,&p,&q); if(p<0||p>14||q<0||q>14) { k=m+29; return k; } }

                                if(qipan[q][p]==SPA) k=m+19;                      /* 己方空活棋型 */

                                else k=m+29;                                      /* 己方空冲棋型 */

                             }break;

                    case MAN:{

                                m++; yiwei(n,&p,&q);

                                if(p<0||p>14||q<0||q>14) { k=m+129; return k; }

                                while(qipan[q][p]==MAN) { m++; yiwei(n,&p,&q); if(p<0||p>14||q<0||q>14) { k=m+129; return k; } }           

                                if(qipan[q][p]==SPA) k=m+119;                     /* 对方空活棋型 */

                                else k=m+129;                                     /* 对方空冲棋型 */ 

                             }break;

                    case SPA: k=-1; break;                                         /* 空棋型 */

                    }

                }break;

    }

    return k;

}