Untitled
unknown
plain_text
a year ago
3.8 kB
5
Indexable
#include <xc.h> #include <libpic30.h> #include <stdio.h> #include <string.h> #include "lcd.h" #include "buttons.h" #define TOTAL_TIME_p1 (3) // w sekundach dla gracza 1 #define TOTAL_TIME_p2 (3) // w sekundach dla gracza 2 volatile unsigned int seconds_p1 = TOTAL_TIME_p1; volatile unsigned int seconds_p2 = TOTAL_TIME_p2; int main(void) { char buffer[32]; // Bufor dla obu czasów LCD_Initialize(); unsigned int remainingSeconds_p1 = seconds_p1; unsigned int remainingSeconds_p2 = seconds_p2; int zmiana = 3; while(true) { switch(zmiana) { if (BUTTON_IsPressed ( BUTTON_S6 ) == true) { zmiana = 3; } case 0: // Koniec czasu LCD_ClearScreen(); if(remainingSeconds_p1 < 1) { LCD_PutString("Koniec czasu p1", strlen("Koniec czasu p1")); } else { LCD_PutString("Koniec czasu p2", strlen("Koniec czasu p2")); } __delay32(4000000); // Czekamy 10 sekund zmiana = 3; // Reset do ekranu startowego case 1: // Tura gracza 1 if (BUTTON_IsPressed(BUTTON_S3) == true) { remainingSeconds_p1 += 2; zmiana = 2; break; } // Formatowanie i wyświetlanie czasu gracza 1 sprintf(buffer, "%02u:%02u p1", remainingSeconds_p1 / 60, remainingSeconds_p1 % 60); LCD_ClearScreen(); LCD_PutString(buffer, strlen(buffer)); LCD_PutString("\n", 1); // Nowa linia // Formatowanie i wyświetlanie czasu gracza 2 (bez zmniejszania) sprintf(buffer, "%02u:%02u p2", remainingSeconds_p2 / 60, remainingSeconds_p2 % 60); LCD_PutString(buffer, strlen(buffer)); __delay32(4000000); // Czekamy sekundę remainingSeconds_p1--; if(remainingSeconds_p1 < 1) { zmiana = 0; } break; case 2: // Tura gracza 2 - analogicznie do case 1 if (BUTTON_IsPressed ( BUTTON_S4 ) == true) { remainingSeconds_p2 = remainingSeconds_p2 + 2; zmiana = 1; break; } // Formatowanie i wyświetlanie czasu gracza 2 sprintf(buffer, "%02u:%02u p2", remainingSeconds_p2 / 60, remainingSeconds_p2 % 60); LCD_ClearScreen(); LCD_PutString(buffer, strlen(buffer)); LCD_PutString("\n", 1); // Nowa linia // Formatowanie i wyświetlanie czasu gracza 1 (bez zmniejszania) sprintf(buffer, "%02u:%02u p1", remainingSeconds_p1 / 60, remainingSeconds_p1 % 60); LCD_PutString(buffer, strlen(buffer)); __delay32(4000000); //czekamy sekundę remainingSeconds_p2--; if(remainingSeconds_p2 < 1) { zmiana = 0; } break; case 3: LCD_PutString("Kto zaczyna?\n s3=p1 s4=p2",32); __delay32(4000000); LCD_ClearScreen(); if (BUTTON_IsPressed ( BUTTON_S3 ) == true) { zmiana = 1; break; } if (BUTTON_IsPressed ( BUTTON_S4 ) == true) { zmiana = 2; break; } default: break; } } return 0; }
Editor is loading...
Leave a Comment