extracted protos and macros to header file.

This commit is contained in:
Jake Goodwin 2023-01-07 21:22:48 -08:00
parent 02bde95d40
commit 7e7cb73cd2
2 changed files with 98 additions and 101 deletions

View File

@ -8,73 +8,7 @@
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include <avr/sleep.h> #include <avr/sleep.h>
#include <util/delay.h> #include <util/delay.h>
#include "1602LCD_char_display.h"
#define RS_PORT PORTD
#define RS_PIN PIND0
#define RS_DDR DDD0
//#define RW_PORT PORTD
//#define RW_PIN PIND1
//#define RW_DDR DDD1
#define ENA_PORT PORTD
#define ENA_PIN PIND1
#define ENA_DDR DDD1
#define BIT4_PORT PORTD
#define BIT4_PIN PIND4
#define BIT4_DDR DDD4
#define BIT5_PORT PORTD
#define BIT5_PIN PIND5
#define BIT5_DDR DDD5
#define BIT6_PORT PORTD
#define BIT6_PIN PIND6
#define BIT6_DDR DDD6
#define BIT7_PORT PORTD
#define BIT7_PIN PIND7
#define BIT7_DDR DDD7
#define LED_PIN PINC0
#define LED_PORT PORTC
#define LED_DDR DDC0
//LCD CONNECTIONS:
/*
* VSS --> GND
* VDD --> VCC
* V0 --> POT --> GND
* RS --> PD0(AVR)
* RW --> GND
* E --> PD1(AVR)
* D4 --> PD4(AVR)
* D5 --> PD5(AVR)
* D6 --> PD6(AVR)
* D7 --> PD7(AVR)
*
* PURPOSE:
* RS: register select,
* RW: Read/Write select signal,
* E: Operation(data read/write) enable signal.
* DB0~DB3: not used for 4bit operations.
* DB4~DB7: high order three-state data lines.
*/
//#############################
//MACROS
//#############################
//already defined
//#define _BV(bit) (1 << bit)
#define setbit(port, bit) (port) |= (1 << (bit))
#define clearbit(port, bit) (port) &= ~(1 << (bit))
@ -82,28 +16,6 @@
//FUNCTION PROTOTYPES //FUNCTION PROTOTYPES
//############################# //#############################
void init_lcd(void);
void cmd_lcd(uint8_t cmd);
void cmd_nibble_lcd(uint8_t cmd);
void clear_lcd(void);
static void led_blink(void);
void set_lcd_one_line_(void);
void set_lcd_two_line(void);
void return_home_lcd(void);
void turn_off_lcd(void);
void turn_on_lcd(void);
void set_cgram_lcd_address(uint8_t addr);
void set_ddram_lcd_address(uint8_t addr);
void write_lcd_address(uint8_t addr);
void set_entry_mode_increment_lcd(void);
void set_entry_mode_decrement_lcd(void);
void shift_right_lcd(void);
void shift_left_lcd(void);
void bbs(void);
void clear_buf_lcd();
int main() { int main() {
PORTD = 0x00; PORTD = 0x00;
DDRD = 0xff; DDRD = 0xff;
@ -158,18 +70,6 @@ int main() {
//FUNCTIONS //FUNCTIONS
//############################# //#############################
void bbs(void) {
_delay_ms(500);
write_lcd_address(0x42);
write_lcd_address(0x4f);
write_lcd_address(0x4f);
write_lcd_address(0x42);
write_lcd_address(0x49);
write_lcd_address(0x45);
write_lcd_address(0x53);
}
/* /*
* Input: none * Input: none
* Output: none * Output: none

97
1602LCD_char_display.h Normal file
View File

@ -0,0 +1,97 @@
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>
#define RS_PORT PORTD
#define RS_PIN PIND0
#define RS_DDR DDD0
//#define RW_PORT PORTD
//#define RW_PIN PIND1
//#define RW_DDR DDD1
#define ENA_PORT PORTD
#define ENA_PIN PIND1
#define ENA_DDR DDD1
#define BIT4_PORT PORTD
#define BIT4_PIN PIND4
#define BIT4_DDR DDD4
#define BIT5_PORT PORTD
#define BIT5_PIN PIND5
#define BIT5_DDR DDD5
#define BIT6_PORT PORTD
#define BIT6_PIN PIND6
#define BIT6_DDR DDD6
#define BIT7_PORT PORTD
#define BIT7_PIN PIND7
#define BIT7_DDR DDD7
#define LED_PIN PINC0
#define LED_PORT PORTC
#define LED_DDR DDC0
//LCD CONNECTIONS:
/*
* VSS --> GND
* VDD --> VCC
* V0 --> POT --> GND
* RS --> PD0(AVR)
* RW --> GND
* E --> PD1(AVR)
* D4 --> PD4(AVR)
* D5 --> PD5(AVR)
* D6 --> PD6(AVR)
* D7 --> PD7(AVR)
*
* PURPOSE:
* RS: register select,
* RW: Read/Write select signal,
* E: Operation(data read/write) enable signal.
* DB0~DB3: not used for 4bit operations.
* DB4~DB7: high order three-state data lines.
*/
//#############################
//MACROS
//#############################
//already defined
//#define _BV(bit) (1 << bit)
#define setbit(port, bit) (port) |= (1 << (bit))
#define clearbit(port, bit) (port) &= ~(1 << (bit))
//#############################
//FUNCTION PROTOTYPES
//#############################
void init_lcd(void);
void cmd_lcd(uint8_t cmd);
void cmd_nibble_lcd(uint8_t cmd);
void clear_lcd(void);
static void led_blink(void);
void set_lcd_one_line_(void);
void set_lcd_two_line(void);
void return_home_lcd(void);
void turn_off_lcd(void);
void turn_on_lcd(void);
void set_cgram_lcd_address(uint8_t addr);
void set_ddram_lcd_address(uint8_t addr);
void write_lcd_address(uint8_t addr);
void set_entry_mode_increment_lcd(void);
void set_entry_mode_decrement_lcd(void);
void shift_right_lcd(void);
void shift_left_lcd(void);
void clear_buf_lcd();