void blinken(char *text) { delay_ms(500); lcd_clear(0); lcd_drawString(48, 4, 48 + 36, 16, 0, 0, text, 1, 0); delay_ms(500); lcd_clear(1); lcd_drawString(48, 4, 48 + 36, 16, 0, 0, text, 0, 0); }
void main(void) { short mx, my, tmx, tmy, ignoreBtn; char stat[14]; // TODO initialise variables with the riht value //mx = -1; //my = -1; //ignoreBtn = 0; lcd_init(); initIO(); adc_init(); lcd_clear(0); drawField(); for (;;) { tmx = (short) (2 - adc_getValue(1) / 255.0 * 2 + 0.5); tmy = (short) (2 - adc_getValue(2) / 255.0 * 2 + 0.5); if (tmy != my || tmx != mx) { drawMarker(mx, my, 0); if (fields[mx][my] == 1) { placePlayerMark(mx, my, 1); } drawMarker(mx = tmx, my = tmy, 1); } if (!BUTTON_RIGHT && !ignoreBtn && !fields[mx][my]) { ignoreBtn = 1; pushes++; placePlayerMark(mx, my, player); if (checkStatus(mx, my)) { lcd_clear(0); sprintf(stat, "Player %u won!", player); lcd_drawString(27, 4, 0, 4, 0, 0, &stat[0], 1, 1); lcd_flush(); break; } if (pushes == 9) { lcd_clear(0); sprintf(stat, "Undecided!"); lcd_drawString(32, 4, 0, 4, 0, 0, &stat[0], 1, 1); lcd_flush(); break; } if (player == 1) { player = 2; } else if (player == 2) { player = 1; } } else if (BUTTON_RIGHT && ignoreBtn) { ignoreBtn = 0; } } }
void displayClock(){ unsigned char bsek, bmin, bhour; char buffer[8]; if(flag){ if(sek == 0){ bsek = 59; if(min == 0){ bmin = 59; if(hour == 0) bhour = 23; else bhour = hour -1; } else bmin = min -1; } else{ bsek = sek -1; } //lcd_drawCircle(160, 120, 55, COLOR_WHITE); //Stundenzeiger lcd_degreeLine(160, 120, 90 - bhour*30, 45, COLOR_BLACK); lcd_degreeLine(160, 120, 90 - hour*30, 45, COLOR_WHITE); //Minutenzeiger lcd_degreeLine(160, 120, 90 - bmin*6, 45, COLOR_BLACK); lcd_degreeLine(160, 120, 90 - min*6, 45, COLOR_WHITE); //Sekundenzeiger lcd_degreeLine(160, 120, 90 - bsek*6, 45, COLOR_BLACK); lcd_degreeLine(160, 120, 90 - sek*6, 45, COLOR_WHITE); flag = 0; sprintf(buffer, "%02i:%02i:%02i", hour, min, sek); lcd_drawString(128, 178, buffer, FONT8X8, COLOR_WHITE, COLOR_BLACK); } }