Skip to content

Commit

Permalink
feat: Reach working state with display initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
starboi-63 committed Mar 12, 2024
1 parent bb0da26 commit 0ae9256
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 9 deletions.
18 changes: 18 additions & 0 deletions ASF/atmel_start_config.atstart
Original file line number Diff line number Diff line change
Expand Up @@ -1264,6 +1264,18 @@ pads:
mode: Peripheral IO
user_label: PA05
configuration: null
Display_RST:
name: PB12
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PB12
mode: Digital output
user_label: Display_RST
configuration: null
Display_DC:
name: PB13
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PB13
mode: Digital output
user_label: Display_DC
configuration: null
PA16:
name: PA16
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PA16
Expand Down Expand Up @@ -1294,6 +1306,12 @@ pads:
mode: Digital output
user_label: PC23
configuration: null
Display_CS:
name: PB20
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PB20
mode: Digital output
user_label: Display_CS
configuration: null
LED_Orange1:
name: PC30
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PC30
Expand Down
3 changes: 3 additions & 0 deletions ASF/atmel_start_pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
#define PA17 GPIO(GPIO_PORTA, 17)
#define PA18 GPIO(GPIO_PORTA, 18)
#define LED_Red GPIO(GPIO_PORTB, 1)
#define Display_RST GPIO(GPIO_PORTB, 12)
#define Display_DC GPIO(GPIO_PORTB, 13)
#define Display_CS GPIO(GPIO_PORTB, 20)
#define PC22 GPIO(GPIO_PORTC, 22)
#define PC23 GPIO(GPIO_PORTC, 23)
#define LED_Orange1 GPIO(GPIO_PORTC, 30)
Expand Down
42 changes: 42 additions & 0 deletions ASF/driver_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,48 @@ void system_init(void)

gpio_set_pin_function(LED_Red, GPIO_PIN_FUNCTION_OFF);

// GPIO on PB12

gpio_set_pin_level(Display_RST,
// <y> Initial level
// <id> pad_initial_level
// <false"> Low
// <true"> High
false);

// Set pin direction to output
gpio_set_pin_direction(Display_RST, GPIO_DIRECTION_OUT);

gpio_set_pin_function(Display_RST, GPIO_PIN_FUNCTION_OFF);

// GPIO on PB13

gpio_set_pin_level(Display_DC,
// <y> Initial level
// <id> pad_initial_level
// <false"> Low
// <true"> High
false);

// Set pin direction to output
gpio_set_pin_direction(Display_DC, GPIO_DIRECTION_OUT);

gpio_set_pin_function(Display_DC, GPIO_PIN_FUNCTION_OFF);

// GPIO on PB20

gpio_set_pin_level(Display_CS,
// <y> Initial level
// <id> pad_initial_level
// <false"> Low
// <true"> High
false);

// Set pin direction to output
gpio_set_pin_direction(Display_CS, GPIO_DIRECTION_OUT);

gpio_set_pin_function(Display_CS, GPIO_PIN_FUNCTION_OFF);

// GPIO on PC30

gpio_set_pin_level(LED_Orange1,
Expand Down
18 changes: 18 additions & 0 deletions atmel_start_config.atstart
Original file line number Diff line number Diff line change
Expand Up @@ -1264,6 +1264,18 @@ pads:
mode: Peripheral IO
user_label: PA05
configuration: null
Display_RST:
name: PB12
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PB12
mode: Digital output
user_label: Display_RST
configuration: null
Display_DC:
name: PB13
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PB13
mode: Digital output
user_label: Display_DC
configuration: null
PA16:
name: PA16
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PA16
Expand Down Expand Up @@ -1294,6 +1306,12 @@ pads:
mode: Digital output
user_label: PC23
configuration: null
Display_CS:
name: PB20
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PB20
mode: Digital output
user_label: Display_CS
configuration: null
LED_Orange1:
name: PC30
definition: Atmel:SAMD51_Drivers:0.0.1::SAMD51P20A-AF::pad::PC30
Expand Down
12 changes: 6 additions & 6 deletions src/tasks/display/display_ssd1362.c
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#include "display_ssd1362.h"

// RST functions
#define RST_LOW() gpio_set_pin_level(OLED_RST_PIN, 0)
#define RST_HIGH() gpio_set_pin_level(OLED_RST_PIN, 1)
#define RST_LOW() gpio_set_pin_level(Display_RST, 0)
#define RST_HIGH() gpio_set_pin_level(Display_RST, 1)
// DC functions
#define DC_LOW() gpio_set_pin_level(OLED_DC_PIN, 0)
#define DC_HIGH() gpio_set_pin_level(OLED_DC_PIN, 1)
#define DC_LOW() gpio_set_pin_level(Display_DC, 0)
#define DC_HIGH() gpio_set_pin_level(Display_DC, 1)
// CS functions
#define CS_LOW() gpio_set_pin_level(OLED_CS_PIN, 0)
#define CS_HIGH() gpio_set_pin_level(OLED_CS_PIN, 1)
#define CS_LOW() gpio_set_pin_level(Display_CS, 0)
#define CS_HIGH() gpio_set_pin_level(Display_CS, 1)

#define INIT_WAIT_INTERVAL 300
#define RESET_HIGH() gpio
Expand Down
6 changes: 3 additions & 3 deletions src/tasks/display/display_ssd1362.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@
#define SSD1362_DESELECT_VOLTAGE_RATIO 0x07 // TODO: what is this

// Pin definitions
#define OLED_RST_PIN GPIO(GPIO_PORTC, 4)
#define OLED_DC_PIN GPIO(GPIO_PORTC, 5)
#define OLED_CS_PIN GPIO(GPIO_PORTD, 53)
// #define OLED_RST_PIN GPIO(GPIO_PORTC, 4)
// #define OLED_DC_PIN GPIO(GPIO_PORTC, 5)
// #define OLED_CS_PIN GPIO(GPIO_PORTD, 53)

// Functions
status_t init_display(void);
Expand Down

0 comments on commit 0ae9256

Please sign in to comment.