Untitled
unknown
plain_text
2 years ago
2.6 kB
7
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