#include "bsp_fdc2214.h" #include "stm32f10x.h" #include "delay.h" #include "sys.h" #include "bsp_iic.h" #include "usart.h" #include "key.h" #include "lcd.h" #include "timer.h"
u32 chvalue; u8 num[11]; u8 keyvalue = 0; u32 valuebuf[10] = { 9254000, 9140000, 9030000, 9010000, 8992000, 8986000 };
void getvalue() { chvalue = FDC2X14ReadCH(1); printf("CH0=%d\n", chvalue); num[10] = '\0'; num[9] = chvalue % 10 + '0'; num[8] = chvalue / 10 % 10 + '0'; num[7] = chvalue / 100 % 10 + '0'; num[6] = chvalue / 1000 % 10 + '0'; num[5] = chvalue / 10000 % 10 + '0'; num[4] = chvalue / 100000 % 10 + '0'; num[3] = chvalue / 1000000 % 10 + '0'; num[2] = chvalue / 10000000 % 10 + '0'; num[1] = chvalue / 100000000 % 10 + '0'; num[0] = chvalue / 1000000000 % 10 + '0'; LCD_ShowString(180, 80, 210, 24, 24, num); }
int main(void) { delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); KEY_Init(); LCD_Init(); IIC_Init(); InitSingleFDC2214(); TIM3_Int_Init(999, 7199); POINT_COLOR = BLACK; LCD_ShowString(168, 40, 210, 24, 24, "FDC2214 DATA");
while (1) { getvalue(); LCD_ShowString(10, 400, 180, 24, 24, "Judgment mode"); LCD_ShowString(300, 400, 180, 24, 24, "Training mode");
if (keyvalue == 3) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); while (1) { LCD_ShowString(10, 400, 180, 24, 24, "finger-guess"); LCD_ShowString(300, 400, 180, 24, 24, "finger-row"); LCD_ShowString(220, 600, 80, 24, 24, "exit"); if (keyvalue == 3) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); while (1) { getvalue(); if (chvalue > valuebuf[2] - 15000 & chvalue < valuebuf[2] + 30000) LCD_ShowString(220, 600, 80, 24, 24, "scissor"); else if (chvalue > valuebuf[0] - 15000 & chvalue < valuebuf[0] + 30000) LCD_ShowString(220, 600, 80, 24, 24, "stone "); else if (chvalue > valuebuf[5] - 30000 & chvalue < valuebuf[5] + 15000) LCD_ShowString(220, 600, 80, 24, 24, "cloth "); else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(220, 600, 310, 624, WHITE); break; } else { LCD_Fill(220, 600, 310, 624, WHITE); } } } else if (keyvalue == 1) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); while (1) { getvalue(); if (chvalue > valuebuf[1] - 10000 & chvalue < valuebuf[1] + 10000) LCD_ShowString(240, 600, 80, 24, 24, "1"); else if (chvalue > valuebuf[2] - 8000 & chvalue < valuebuf[2] + 10000) LCD_ShowString(240, 600, 80, 24, 24, "2"); else if (chvalue > valuebuf[3] - 3000 & chvalue < valuebuf[3] + 8000) LCD_ShowString(240, 600, 80, 24, 24, "3"); else if (chvalue > valuebuf[4] - 3000 & chvalue < valuebuf[4] + 3000) LCD_ShowString(240, 600, 80, 24, 24, "4"); else if (chvalue > valuebuf[5] - 10000 & chvalue < valuebuf[5] + 3000) LCD_ShowString(240, 600, 80, 24, 24, "5"); else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(220, 600, 310, 624, WHITE); break; } else { LCD_Fill(220, 600, 310, 624, WHITE); } } } else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); break; } }
} else if (keyvalue == 1) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); while (1) { LCD_ShowString(10, 400, 180, 24, 24, "train-guess"); LCD_ShowString(300, 400, 180, 24, 24, "train-row"); LCD_ShowString(220, 600, 80, 24, 24, "exit"); if (keyvalue == 3) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); while (1) { LCD_ShowString(10, 400, 480, 24, 24, "Press the button key-up when finished"); LCD_ShowString(220, 600, 80, 24, 24, "exit"); if (keyvalue == 4) { keyvalue = 0; LCD_Fill(10, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); getvalue(); while (1) { LCD_ShowString(10, 400, 480, 24, 24, "key0-stone key1-scissor key2-cloth"); if (keyvalue == 1) { keyvalue = 0; valuebuf[0] = chvalue; break; } else if (keyvalue == 2) { keyvalue = 0; valuebuf[2] = chvalue; break; } else if (keyvalue == 3) { keyvalue = 0; valuebuf[5] = chvalue; break; } } } else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(10, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); break; } } } else if (keyvalue == 1) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); while (1) { LCD_ShowString(10, 400, 480, 24, 24, "Press the button key-up when finished"); LCD_ShowString(220, 600, 80, 24, 24, "exit"); if (keyvalue == 4) { keyvalue = 0; LCD_Fill(10, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); getvalue(); while (1) { LCD_ShowString(10, 400, 480, 24, 24, "key0-1or2 key1-3or4 key2-5"); if (keyvalue == 1) { keyvalue = 0; LCD_Fill(10, 400, 480, 424, WHITE); while (1) { LCD_ShowString(10, 400, 180, 24, 24, "key0-1 key1-2"); if (keyvalue == 1) { keyvalue = 0; valuebuf[1] = chvalue; break; } if (keyvalue == 2) { keyvalue = 0; valuebuf[2] = chvalue; break; } } break; } else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(10, 400, 480, 424, WHITE); while (1) { LCD_ShowString(10, 400, 180, 24, 24, "key0-3 key1-4"); if (keyvalue == 1) { keyvalue = 0; valuebuf[3] = chvalue; break; } if (keyvalue == 2) { keyvalue = 0; valuebuf[4] = chvalue; break; } } break; } else if (keyvalue == 3) { keyvalue = 0; valuebuf[5] = chvalue; break; } } } else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(10, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); break; } } } else if (keyvalue == 2) { keyvalue = 0; LCD_Fill(10, 400, 200, 424, WHITE); LCD_Fill(300, 400, 480, 424, WHITE); LCD_Fill(220, 600, 310, 624, WHITE); break; } } } delay_ms(100); } }
void TIM3_IRQHandler(void) { if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
keyvalue = KEY_Scan(0);
} }
|