Untitled
unknown
plain_text
a year ago
2.6 kB
4
Indexable
#include "xc.h" #include <libpic30.h> // ... (definicje makr i funkcji LCD - bez zmian) unsigned char symbol_wiatr[8] = { 0b00110, 0b01010, 0b10001, 0b11111, 0b10001, 0b01010, 0b00110, 0b00000 }; unsigned char symbol_ogien[8] = { 0b11111, 0b11011, 0b10001, 0b10001, 0b10001, 0b11011, 0b11111, 0b00000 }; int main(void) { // ... (inicjalizacja rejestrów kierunku, inicjalizacja LCD - bez zmian) // Zapisanie symboli wiatru i ognia do pamięci CGRAM LCD_saveCustChar(0, symbol_wiatr); LCD_saveCustChar(1, symbol_ogien); char text1[] = "wind"; char text2[] = "breaker"; char text3[] = "is born!"; int text1_index = 0; int text2_index = 0; int text3_index = 0; while (1) { // Wyczyszczenie ekranu LCD_sendCommand(LCD_CLEAR); // Wyświetlanie pierwszej linii tekstu LCD_setCursor(1, 0); for (int i = 0; i < 4; i++) { if (text1[text1_index] == '\0') { LCD_sendData(0); // Wyświetlanie symbolu wiatru z pamięci CGRAM text1_index = 0; // Reset indeksu tekstu 1 } else { LCD_sendData(text1[text1_index]); text1_index++; } } // Wyświetlanie drugiej linii tekstu LCD_setCursor(2, 0); for (int i = 0; i < 8; i++) { if (text2[text2_index] == '\0') { LCD_sendData(1); // Wyświetlanie symbolu ognia z pamięci CGRAM text2_index = 0; // Reset indeksu tekstu 2 } else { LCD_sendData(text2[text2_index]); text2_index++; } } // Wyświetlanie trzeciej linii tekstu LCD_setCursor(3, 0); for (int i = 0; i < 8; i++) { if (text3[text3_index] == '\0') { LCD_sendData(0); // Wyświetlanie symbolu wiatru z pamięci CGRAM text3_index = 0; // Reset indeksu tekstu 3 } else { LCD_sendData(text3[text3_index]); text3_index++; } } __delay_ms(500); // Opóźnienie // Animacja zmiany tekstu if (text1_index == 4) { text1 = "good"; } else if (text2_index == 8) { text2 = "food"; } else if (text3_index == 8) { text3 = "cheap"; } // ... (opcjonalnie: inne animacje, efekty) } return 0; }
Editor is loading...
Leave a Comment