#include "cyc_cnt.h"
#include "lcd.h"
static volatile unsigned char *const lcd_ptr =
(volatile unsigned char *)0x80000100;
/**
* @brief set data to LCD
* @param[in] data data to LCD
*/
void lcd_set_data(unsigned char data)
{
lcd_ptr[0] = data;
}
/**
* @brief set enable signal to LCD
* @param[in] state state for enable signal (0 or 1)
*/
void lcd_set_e(unsigned char state)
{
lcd_ptr[1] = state;
}
/**
* @brief set register select signal to LCD
* @param[in] state state for register select signal (0 or 1)
*/
void lcd_set_rs(unsigned char state)
{
lcd_ptr[2] = state;
}
/**
* @brief set read/write signal to LCD
* @param[in] state state for read/write signal (0 or 1)
*/
void lcd_set_rw(unsigned char state)
{
lcd_ptr[3] = state;
}
/** set LCD to 4 bit mode */
void lcd_set4bit(void)
{
lcd_set_data(0x0F);
lcd_set_e(0);
lcd_set_rs(0);
lcd_set_rw(0);
cyc_cnt_delay(15 * CYC_CNT_MS);
lcd_set_data(0x3F);