// Rozpoczecie gry void gra(){ PCD8544_Clear(); TIM_Cmd(TIM3, DISABLE); TIM_Cmd(TIM4, ENABLE); setup(); while(status_gry==0) { } TIM_Cmd(TIM4, DISABLE); PCD8544_Clear(); PCD8544_Refresh(); }
void PCD8544_Init(unsigned char contrast) { //Initialize IO's PCD8544_InitIO(); //Reset PCD8544_Pin(PCD8544_Pin_RST, PCD8544_State_Low); PCD8544_Delay(10000); PCD8544_Pin(PCD8544_Pin_RST, PCD8544_State_High); // Go in extended mode PCD8544_Write(PCD8544_COMMAND, PCD8544_FUNCTIONSET | PCD8544_EXTENDEDINSTRUCTION); // LCD bias select PCD8544_Write(PCD8544_COMMAND, PCD8544_SETBIAS | 0x4); // set VOP if (contrast > 0x7F) { contrast = 0x7F; } PCD8544_Write(PCD8544_COMMAND, PCD8544_SETVOP | contrast); // normal mode PCD8544_Write(PCD8544_COMMAND, PCD8544_FUNCTIONSET); // Set display to Normal PCD8544_Write(PCD8544_COMMAND, PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYNORMAL); //Set cursor to home position PCD8544_Home(); //Normal display PCD8544_Write(PCD8544_COMMAND, PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYNORMAL); //Clear display PCD8544_Clear(); }
// Wywietlenie rekordu void rekord() { PCD8544_Clear(); PCD8544_Refresh(); char buffor[8]; itoa(the_best,buffor,9); PCD8544_GotoXY(0, 20); PCD8544_Puts("TWOJ REKORD:", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_Puts(buffor ,PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_Refresh(); while(kier!=2) { } kier=0; PCD8544_Clear(); PCD8544_Refresh(); }
//Zmiana ustawieñ void opcje() { PCD8544_Clear(); PCD8544_Refresh(); PCD8544_GotoXY(14, 5); PCD8544_Puts("SNAKE", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_GotoXY(10, 19); PCD8544_Puts("Paulina Kurpisz", PCD8544_Pixel_Set, PCD8544_FontSize_3x5); PCD8544_GotoXY(10, 32); PCD8544_Puts("Michal Suchorzynski", PCD8544_Pixel_Set, PCD8544_FontSize_3x5); PCD8544_Refresh(); while(kier!=2) { } kier=0; PCD8544_Clear(); PCD8544_Refresh(); }
int main(void) { SystemInit(); ////////////////// SPI2 - SD fpu_enable(); delay_init( 168 ); SPI_SD_Init(); ////////////////// RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE); //rng RNG_Cmd(ENABLE); //switch on RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //button InitEXTIButtonPA0();//accept InitEXTIButtonPA1();//up InitEXTIButtonPA2();//right InitEXTIButtonPA3();//down InitEXTIButtonPA4();//left RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //timer ConfTim2(); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //timer ConfTim3(350); //init with start_value game period SetSnakeSpeed(3); PCD8544_Init(0x38); //Initialize LCD with 0x38 software contrast //////////////////////////////////////////// DrawBitMap(SnakeBitMap); PCD8544_Refresh(); WaitForAcceptButton(); PCD8544_Clear(); MainMenu(); while (1) { } }
void PCD8544_Initialise(void) { GPIO_ResetBits(GPIOB, GPIO_Pin_11); GPIO_ResetBits(GPIOB, GPIO_Pin_12); GPIO_ResetBits(GPIOB, GPIO_Pin_13); GPIO_SetBits(GPIOB, GPIO_Pin_14); GPIO_SetBits(GPIOB, GPIO_Pin_15); Delay(12); GPIO_SetBits(GPIOB, GPIO_Pin_11); PCD8544_Write_Byte(0x21, LCD_Command); PCD8544_Write_Byte(0xB7, LCD_Command); PCD8544_Write_Byte(0x14, LCD_Command); PCD8544_Write_Byte(0x06, LCD_Command); PCD8544_Write_Byte(0x20, LCD_Command); PCD8544_Clear(); PCD8544_Write_Byte(0x0c, LCD_Command); }
// G³owne menu void menu() { TIM_Cmd(TIM2, ENABLE); while(1) { PCD8544_GotoXY(0,10); PCD8544_Puts(" START", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_GotoXY(0,20); PCD8544_Puts(" REKORD", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_GotoXY(0,30); PCD8544_Puts(" AUTORZY", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_GotoXY(0,40); PCD8544_Puts(" ZAKONCZ", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); // WskaŸnik w menu PCD8544_GotoXY(0,b); PCD8544_Puts("-->", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); PCD8544_Refresh(); // Wskaznik do góry if(kier==3 && b!=10) { PCD8544_GotoXY(0,b); PCD8544_Puts(" ", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); b=b-10; kier=0; } // Wska¿nik w dó³ if(kier==4&& b!=40) { PCD8544_GotoXY(0,b); PCD8544_Puts(" ", PCD8544_Pixel_Set, PCD8544_FontSize_5x7); b=b+10; kier=0; } if(kier==1 && b==10) { gra(); kier=0; } // Rekord if(kier==1 && b==20) { rekord(); kier=0; } // Opcje if(kier==1 && b==30) { PCD8544_Clear(); PCD8544_Refresh(); opcje(); kier=0; } // Wyjscie if(kier==1 && b==40) { PCD8544_Clear(); kier=0; return; } } }