Compare commits
No commits in common. '0b61bb811a0ef01892a827a64c1eee8c1620e56c' and '6e31ba43b892f4b3280d04444687f7bcd1a1e51c' have entirely different histories.
0b61bb811a
...
6e31ba43b8
Binary file not shown.
@ -1,79 +0,0 @@
|
|||||||
#include "app_gpio.h"
|
|
||||||
|
|
||||||
void Gpio_Port_Initialization(void)
|
|
||||||
{
|
|
||||||
SYS_ClockEnable(SYS_PERIPH_CLOCK_GPIO0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void GPIO0_IRQHandler(void)
|
|
||||||
{
|
|
||||||
GPIO_Handler(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_Set_Port_Output(uint32_t Port, uint32_t Pin, gpio_pad_t PullUpDown)
|
|
||||||
{
|
|
||||||
gpio_cfg_t gpio_out;
|
|
||||||
gpio_out.port = Port;
|
|
||||||
gpio_out.mask = Pin;
|
|
||||||
gpio_out.pad = PullUpDown;
|
|
||||||
gpio_out.func = GPIO_FUNC_OUT;
|
|
||||||
GPIO_Config(&gpio_out);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_Set_Port_Input(uint32_t Port, uint32_t Pin, gpio_pad_t PullUpDown)
|
|
||||||
{
|
|
||||||
gpio_cfg_t gpio_in;
|
|
||||||
gpio_in.port = Port;
|
|
||||||
gpio_in.mask = Pin;
|
|
||||||
gpio_in.pad = PullUpDown;
|
|
||||||
gpio_in.func = GPIO_FUNC_IN;
|
|
||||||
GPIO_Config(&gpio_in);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_Register_Interrupt_Callback(uint32_t Port, uint32_t Pin, gpio_pad_t PullUpDown, gpio_int_pol_t int_state, gpio_callback_fn callback, void* pCallbackParam)
|
|
||||||
{
|
|
||||||
gpio_cfg_t gpio_interrupt;
|
|
||||||
gpio_interrupt.port = Port;
|
|
||||||
gpio_interrupt.mask = Pin;
|
|
||||||
gpio_interrupt.pad = PullUpDown;
|
|
||||||
gpio_interrupt.func = GPIO_FUNC_IN;
|
|
||||||
|
|
||||||
GPIO_Config(&gpio_interrupt);
|
|
||||||
GPIO_RegisterCallback(&gpio_interrupt, callback, pCallbackParam);
|
|
||||||
GPIO_IntConfig(&gpio_interrupt, GPIO_INT_EDGE, int_state);
|
|
||||||
GPIO_IntEnable(&gpio_interrupt);
|
|
||||||
NVIC_EnableIRQ((IRQn_Type)MXC_GPIO_GET_IRQ(Port));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_UnRegister_Interrupt_Callback(uint32_t port, uint32_t pin)
|
|
||||||
{
|
|
||||||
gpio_cfg_t gpio_interrupt;
|
|
||||||
gpio_interrupt.port = port;
|
|
||||||
gpio_interrupt.mask = pin;
|
|
||||||
GPIO_RegisterCallback(&gpio_interrupt, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t Gpio_Get_InputState(uint32_t Port, uint32_t Pin)
|
|
||||||
{
|
|
||||||
mxc_gpio_regs_t *gpio = MXC_GPIO_GET_GPIO(Port);
|
|
||||||
return (gpio->in & Pin);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_Output_Set(uint32_t port, uint32_t pin)
|
|
||||||
{
|
|
||||||
mxc_gpio_regs_t *gpio = MXC_GPIO_GET_GPIO(port);
|
|
||||||
gpio->out_set = pin;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_Output_Clear(uint32_t port, uint32_t pin)
|
|
||||||
{
|
|
||||||
mxc_gpio_regs_t *gpio = MXC_GPIO_GET_GPIO(port);
|
|
||||||
gpio->out_clr = pin;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Gpio_Output_Toggle(uint32_t port, uint32_t pin)
|
|
||||||
{
|
|
||||||
mxc_gpio_regs_t *gpio = MXC_GPIO_GET_GPIO(port);
|
|
||||||
gpio->out ^= pin;
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
/** \file app_gpio.h */
|
|
||||||
#if !defined(APP_GPIO_H__A8A8D350_41F8_4088_82AF_828DD09BCABF__INCLUDED_)
|
|
||||||
#define APP_GPIO_H__A8A8D350_41F8_4088_82AF_828DD09BCABF__INCLUDED_
|
|
||||||
|
|
||||||
#include "board_config.h"
|
|
||||||
|
|
||||||
void Gpio_Port_Initialization(void);
|
|
||||||
|
|
||||||
void Gpio_Set_Port_Output(uint32_t Port, uint32_t Pin, gpio_pad_t PullUpDown);
|
|
||||||
void Gpio_Set_Port_Input(uint32_t Port, uint32_t Pin, gpio_pad_t PullUpDown);
|
|
||||||
void Gpio_Register_Interrupt_Callback(uint32_t Port, uint32_t Pin, gpio_pad_t PullUpDown, gpio_int_pol_t int_state, gpio_callback_fn callback, void* pCallbackParam);
|
|
||||||
void Gpio_UnRegister_Interrupt_Callback(uint32_t port, uint32_t pin);
|
|
||||||
uint32_t Gpio_Get_InputState(uint32_t Port, uint32_t Pin);
|
|
||||||
void Gpio_Output_Set(uint32_t port, uint32_t pin);
|
|
||||||
void Gpio_Output_Clear(uint32_t port, uint32_t pin);
|
|
||||||
void Gpio_Output_Toggle(uint32_t port, uint32_t pin);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,269 +0,0 @@
|
|||||||
#include "app_oled.h"
|
|
||||||
#include "app_gpio.h"
|
|
||||||
#include "app_log.h"
|
|
||||||
#include "sw_timer.h"
|
|
||||||
#include "ssd1306.h"
|
|
||||||
|
|
||||||
|
|
||||||
#define OLED_POWER_PORT PORT_0
|
|
||||||
#define OLED_POWER_PIN PIN_4
|
|
||||||
|
|
||||||
#define OLED_POWER_ON Gpio_Output_Set(OLED_POWER_PORT, OLED_POWER_PIN);
|
|
||||||
#define OLED_POWER_OFF Gpio_Output_Clear(OLED_POWER_PORT, OLED_POWER_PIN);
|
|
||||||
#define OLED_POWER_T Gpio_Output_Toggle(OLED_POWER_PORT, OLED_POWER_PIN);
|
|
||||||
|
|
||||||
|
|
||||||
#define OLED_POWER_ON_OFF_WAIT_TIME 100
|
|
||||||
#define OLED_ERROR_PRINT_INTERVAL 1000
|
|
||||||
#define OLED_SHOW_LOG_WAIT_TIME 1000
|
|
||||||
#define OLED_SHOW_LOG_INVERSE_WAIT_TIME 1000
|
|
||||||
#define OLED_UPDATE_TEMP_INTERVAL 100
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static OLED_STEP oled_step;
|
|
||||||
static OLED_STEP oled_pre_step;
|
|
||||||
static uint32_t oled_tickCount;
|
|
||||||
uint32_t oled_shift_index;
|
|
||||||
|
|
||||||
uint16_t oled_draw_temp;
|
|
||||||
|
|
||||||
|
|
||||||
static void Oled_Process(void);
|
|
||||||
static void Oled_Next_Step(OLED_STEP nextStep);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool Oled_Initialization(void)
|
|
||||||
{
|
|
||||||
oled_step = OLED_STEP_INIT;
|
|
||||||
oled_pre_step = OLED_STEP_INIT;
|
|
||||||
|
|
||||||
//Gpio_Set_Port_Output(OLED_POWER_PORT, OLED_POWER_PIN, GPIO_PAD_PULL_UP);
|
|
||||||
//OLED_POWER_OFF;
|
|
||||||
|
|
||||||
SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 1, Oled_Process);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Oled_Test(void)
|
|
||||||
{
|
|
||||||
OLED_POWER_T;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Oled_Process(void)
|
|
||||||
{
|
|
||||||
switch(oled_step)
|
|
||||||
{
|
|
||||||
case OLED_STEP_INIT:
|
|
||||||
Gpio_Set_Port_Output(OLED_POWER_PORT, OLED_POWER_PIN, GPIO_PAD_PULL_UP);
|
|
||||||
OLED_POWER_OFF;
|
|
||||||
oled_tickCount = millis();
|
|
||||||
Oled_Next_Step(OLED_STEP_POWER_OFF_WAIT);
|
|
||||||
|
|
||||||
break;
|
|
||||||
case OLED_STEP_POWER_OFF_WAIT:
|
|
||||||
if((millis() - oled_tickCount) >= OLED_POWER_ON_OFF_WAIT_TIME)
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_POWER_ON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OLED_STEP_POWER_ON:
|
|
||||||
OLED_POWER_ON;
|
|
||||||
oled_tickCount = millis();
|
|
||||||
Oled_Next_Step(OLED_STEP_POWER_ON_WAIT);
|
|
||||||
break;
|
|
||||||
case OLED_STEP_POWER_ON_WAIT:
|
|
||||||
if((millis() - oled_tickCount) >= OLED_POWER_ON_OFF_WAIT_TIME)
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_SET_INIT);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OLED_STEP_SET_INIT:
|
|
||||||
if(SSD1306_Init(SSD1306_ADDR) != SSD1306_SUCCESS)
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_ERROR);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_NORMAL_SCREEN_SET);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OLED_STEP_NORMAL_SCREEN_SET:
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
SSD1306_ClearScreen ();
|
|
||||||
Oled_Next_Step(OLED_STEP_DRAW_LOG);
|
|
||||||
break;
|
|
||||||
case OLED_STEP_DRAW_LOG:
|
|
||||||
SSD1306_DrawBackGround_Log();
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
oled_tickCount = millis();
|
|
||||||
Oled_Next_Step(OLED_STEP_WAIT_LOG);
|
|
||||||
break;
|
|
||||||
case OLED_STEP_WAIT_LOG:
|
|
||||||
if((millis() - oled_tickCount) >= OLED_SHOW_LOG_WAIT_TIME)
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_LOG_INVERSE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OLED_STEP_LOG_INVERSE:
|
|
||||||
SSD1306_InverseScreen (SSD1306_ADDR);
|
|
||||||
oled_tickCount = millis();
|
|
||||||
Oled_Next_Step(OLED_STEP_WAIT_LOG_INVERSE);
|
|
||||||
break;
|
|
||||||
case OLED_STEP_WAIT_LOG_INVERSE:
|
|
||||||
if((millis() - oled_tickCount) >= OLED_SHOW_LOG_INVERSE_WAIT_TIME)
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_LOG_NORMAL);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OLED_STEP_LOG_NORMAL:
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
oled_shift_index = 0;
|
|
||||||
Oled_Next_Step(OLED_STEP_LOG_LEFT_SCROL);
|
|
||||||
break;
|
|
||||||
case OLED_STEP_LOG_LEFT_SCROL:
|
|
||||||
SSD1306_DrawBackGround_LeftShift(1);
|
|
||||||
if(oled_shift_index % 2 == 0)
|
|
||||||
{
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
}
|
|
||||||
oled_shift_index++;
|
|
||||||
|
|
||||||
if(oled_shift_index >= 128)
|
|
||||||
{
|
|
||||||
Oled_Next_Step(OLED_STEP_DRAW_BACKGROUND);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case OLED_STEP_DRAW_BACKGROUND:
|
|
||||||
SSD1306_DrawBackGround();
|
|
||||||
SSD1306_Draw_Temperature(oled_draw_temp);
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
oled_tickCount = millis();
|
|
||||||
Oled_Next_Step(OLED_STEP_DRAW_TEMP);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OLED_STEP_DRAW_TEMP:
|
|
||||||
if((millis() - oled_tickCount) >= OLED_UPDATE_TEMP_INTERVAL)
|
|
||||||
{
|
|
||||||
oled_tickCount = millis();
|
|
||||||
SSD1306_Draw_Temperature(oled_draw_temp);
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case OLED_STEP_ERROR:
|
|
||||||
if((millis() - oled_tickCount) >= OLED_ERROR_PRINT_INTERVAL)
|
|
||||||
{
|
|
||||||
oled_tickCount = millis();
|
|
||||||
dbg_printf(LOG_LEVEL_DEBUG, "Oled Step Error %d\r\n", oled_pre_step);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Oled_Next_Step(OLED_STEP nextStep)
|
|
||||||
{
|
|
||||||
oled_pre_step = oled_step;
|
|
||||||
oled_step = nextStep;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
if(SSD1306_Init(SSD1306_ADDR) != SSD1306_SUCCESS)
|
|
||||||
{
|
|
||||||
printf("ssd1306 init fail\r\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
uint8_t i;
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
SSD1306_ClearScreen ();
|
|
||||||
SSD1306_DrawBackGround_Log();
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
Delay_ms(1500);
|
|
||||||
SSD1306_InverseScreen (SSD1306_ADDR);
|
|
||||||
Delay_ms(1500);
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
for(i = 0 ; i < 128 ; i++)
|
|
||||||
{
|
|
||||||
SSD1306_DrawBackGround_LeftShift(1);
|
|
||||||
if(i % 2 == 0)
|
|
||||||
{
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Delay_ms(10);
|
|
||||||
}
|
|
||||||
SSD1306_DrawBackGround();
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
SSD1306_ClearScreen (); // clear screen
|
|
||||||
SSD1306_DrawLine (0, MAX_X, 4, 4); // draw line
|
|
||||||
SSD1306_SetPosition (7, 1); // set position
|
|
||||||
SSD1306_DrawString ("SSD1306 OLED DRIVER"); // draw string
|
|
||||||
SSD1306_DrawLine (0, MAX_X, 18, 18); // draw line
|
|
||||||
SSD1306_SetPosition (40, 3); // set position
|
|
||||||
SSD1306_DrawString ("MATIASUS"); // draw string
|
|
||||||
//SSD1306_SetPosition (53, 5); // set position
|
|
||||||
//SSD1306_DrawString ("2021"); // draw string
|
|
||||||
SSD1306_UpdateScreen (SSD1306_ADDR); // update
|
|
||||||
|
|
||||||
|
|
||||||
Delay_ms (1000);
|
|
||||||
SSD1306_InverseScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
Delay_ms (1000);
|
|
||||||
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
Delay_ms (1000);
|
|
||||||
SSD1306_InverseScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
Delay_ms (1000);
|
|
||||||
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
Delay_ms (1000);
|
|
||||||
SSD1306_InverseScreen (SSD1306_ADDR);
|
|
||||||
|
|
||||||
Delay_ms (1000);
|
|
||||||
|
|
||||||
SSD1306_NormalScreen (SSD1306_ADDR);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,39 +0,0 @@
|
|||||||
/** \file app_oled.h */
|
|
||||||
#if !defined(APP_OLED_H__6B909B42_366E_4E67_91F9_577B515933F7__INCLUDED_)
|
|
||||||
#define APP_OLED_H__6B909B42_366E_4E67_91F9_577B515933F7__INCLUDED_
|
|
||||||
|
|
||||||
#include "board_config.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
OLED_STEP_INIT,
|
|
||||||
OLED_STEP_POWER_OFF_WAIT,
|
|
||||||
OLED_STEP_POWER_ON,
|
|
||||||
OLED_STEP_POWER_ON_WAIT,
|
|
||||||
OLED_STEP_SET_INIT,
|
|
||||||
|
|
||||||
OLED_STEP_NORMAL_SCREEN_SET,
|
|
||||||
OLED_STEP_DRAW_LOG,
|
|
||||||
OLED_STEP_WAIT_LOG,
|
|
||||||
OLED_STEP_LOG_INVERSE,
|
|
||||||
OLED_STEP_WAIT_LOG_INVERSE,
|
|
||||||
OLED_STEP_LOG_NORMAL,
|
|
||||||
OLED_STEP_LOG_LEFT_SCROL,
|
|
||||||
OLED_STEP_DRAW_BACKGROUND,
|
|
||||||
OLED_STEP_DRAW_TEMP,
|
|
||||||
|
|
||||||
|
|
||||||
OLED_STEP_ERROR,
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}OLED_STEP;
|
|
||||||
|
|
||||||
|
|
||||||
bool Oled_Initialization(void);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue