<commit_before>/* 
 * See pinout.txt in the root directory of this project for the
 * LCD pinout.
 */

#ifndef __CHARLCD_H__
#define __CHARLCD_H__

// Device Defines (set these for your device!)
#define Num_Lines 4
#define Num_Characters 20  // Per line

#define Set_RS GPIO_SetBits(GPIOD,GPIO_Pin_7)
#define Clr_RS GPIO_ResetBits(GPIOD,GPIO_Pin_7)

#define Set_RW GPIO_SetBits(GPIOD,GPIO_Pin_8)
#define Clr_RW GPIO_ResetBits(GPIOD,GPIO_Pin_8)

#define Set_Clk GPIO_SetBits(GPIOD,GPIO_Pin_9)
#define Clr_Clk GPIO_ResetBits(GPIOD,GPIO_Pin_9)

// May use pwm and a transistor on the 5V rail in the final version
#define Backlight_On GPIO_SetBits(GPIOD,GPIO_Pin_10)
#define Backlight_Off GPIO_ResetBits(GPIOD,GPIO_Pin_10)

extern u8 CharLCD_line,CharLCD_column;

void CharLCD_Config(void);
void CharLCD_Init(void);
void CharLCD_WriteLineWrap(const char* string);
void CharLCD_WriteLineNoWrap(const char* string);
void CharLCD_WriteString(const char* line);
void CharLCD_SetCursor(u8 line,u8 column);
void CharLCD_Clear(void);
void CharLCD_Delay(int Count);
void CharLCD_Test(void);<commit_msg>Add struct for custom characters.<commit_after>/* 
 * See pinout.txt in the root directory of this project for the
 * LCD pinout.
 */

#ifndef __CHARLCD_H__
#define __CHARLCD_H__

// Device Defines (set these for your device!)
#define Num_Lines 4
#define Num_Characters 20  // Per line

#define Set_RS GPIO_SetBits(GPIOD,GPIO_Pin_7)
#define Clr_RS GPIO_ResetBits(GPIOD,GPIO_Pin_7)

#define Set_RW GPIO_SetBits(GPIOD,GPIO_Pin_8)
#define Clr_RW GPIO_ResetBits(GPIOD,GPIO_Pin_8)

#define Set_Clk GPIO_SetBits(GPIOD,GPIO_Pin_9)
#define Clr_Clk GPIO_ResetBits(GPIOD,GPIO_Pin_9)

// May use pwm and a transistor on the 5V rail in the final version
#define Backlight_On GPIO_SetBits(GPIOD,GPIO_Pin_10)
#define Backlight_Off GPIO_ResetBits(GPIOD,GPIO_Pin_10)

extern u8 CharLCD_line,CharLCD_column;

typedef struct {
	u8 ramlocation;
	u8 line[7];
} CustomCharacter;

void CharLCD_Config(void);
void CharLCD_Init(void);
void CharLCD_WriteLineWrap(const char* string);
void CharLCD_WriteLineNoWrap(const char* string);
void CharLCD_WriteString(const char* line);
void CharLCD_SetCursor(u8 line,u8 column);
void CharLCD_Clear(void);
void CharLCD_Delay(int Count);
void CharLCD_Test(void);
{'fraction_non_alphanumeric': 0.08204675782973092, 'fraction_numerical': 0.016321129245699163, 'mean_word_length': 7.217391304347826, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1592948', 'n_tokens_mistral': 878, 'n_tokens_neox': 853, 'n_words': 212}