#include "stm32f1xx_hal.h"
#include "lcd.h"
#include <stdio.h>
int counter = 0;
void SystemClock_Config(void);
void GPIO_Init(void);
int main(void) {
HAL_Init();
SystemClock_Config();
GPIO_Init();
LCD_Init();
// Menampilkan Nama & NRP
LCD_SetCursor(0, 0);
LCD_Print("Nama: Najma");
LCD_SetCursor(1, 0);
LCD_Print("NRP: 5049231035");
HAL_Delay(3000); // Tunggu 3 detik
LCD_Clear();
while (1) {
// Up Counter
for (counter = 0; counter <= 9; counter++) {
char buffer[16];
sprintf(buffer, "Count: %02d", counter);
LCD_SetCursor(0, 0);
LCD_Print("Up Counter");
LCD_SetCursor(1, 0);
LCD_Print(buffer);
HAL_Delay(500);
}
HAL_Delay(2000);
LCD_Clear();
// Down Counter
for (counter = 9; counter >= 0; counter--) {
char buffer[16];
sprintf(buffer, "Count: %02d", counter);
LCD_SetCursor(0, 0);
LCD_Print("Down Counter");
LCD_SetCursor(1, 0);
LCD_Print(buffer);
HAL_Delay(500);
}
HAL_Delay(2000);
LCD_Clear();
}
}
void GPIO_Init(void) {
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = LCD_RS | LCD_EN | LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(LCD_PORT, &GPIO_InitStruct);
}