完成tft基础功能
This commit is contained in:
parent
91399c2e8f
commit
b2a5002742
21 changed files with 1036 additions and 480 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* config.h - 配置整个工程
|
||||
* config.h - 配置整个工程
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
@ -10,20 +10,20 @@
|
|||
|
||||
|
||||
/*
|
||||
* 模拟定时器使用的定时器
|
||||
* 模拟定时器使用的定时器
|
||||
*/
|
||||
#define SIMULAT_TIMER_PITX PIT1
|
||||
|
||||
|
||||
/*
|
||||
* 调试模块
|
||||
* 调试模块
|
||||
*/
|
||||
#define DEBUG_UARTX UART1
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 输入模块
|
||||
* 输入模块
|
||||
*/
|
||||
#define UP_KEY_PINX PTE20
|
||||
#define DOWN_KEY_PINX PTA17
|
||||
|
|
@ -35,16 +35,16 @@
|
|||
#define MB_KEY_PINX PTA16
|
||||
#define MUVB_KEY_PINX PTD6
|
||||
|
||||
#define KNOB_A_PINX PTD3
|
||||
#define KNOB_B_PINX PTD4
|
||||
#define KNOB_KEY_PINX PTD5
|
||||
#define KNOB_A_PINX PTD6
|
||||
#define KNOB_B_PINX PTD7
|
||||
#define KNOB_KEY_PINX PTD4 // PTD5
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 显示模块
|
||||
* 显示模块
|
||||
*/
|
||||
#define TFT_UARTX UART2
|
||||
#define TFT_UARTX UART2 // PTD2,PTD3
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* debug.h - 调试
|
||||
* debug.h - 调试
|
||||
*/
|
||||
|
||||
#ifndef DEBUG_H
|
||||
|
|
@ -23,21 +23,21 @@ extern volatile float recval_debug_uart[26];
|
|||
|
||||
|
||||
/*
|
||||
* debug_init() - 初始化调试功能
|
||||
* debug_init() - 初始化调试功能
|
||||
*/
|
||||
void debug_init(void);
|
||||
|
||||
/*
|
||||
* str_to_fp() - 将字符串转换为浮点数
|
||||
* @str: 字符串地址
|
||||
* @len: 字符串长度
|
||||
* str_to_fp() - 将字符串转换为浮点数
|
||||
* @str: 字符串地址
|
||||
* @len: 字符串长度
|
||||
*
|
||||
* 这个函数传入的字符串格式应符合c语言标准浮点格式,并且没有'\0'
|
||||
* 这个函数传入的字符串格式应符合c语言标准浮点格式,并且没有'\0'
|
||||
*/
|
||||
float str_to_fp(char str[], uint8_t len);
|
||||
|
||||
/*
|
||||
* rec_debug_uart() - 接收uart传入的调试信息,并转换为浮点数
|
||||
* rec_debug_uart() - 接收uart传入的调试信息,并转换为浮点数
|
||||
*
|
||||
*/
|
||||
void rec_debug_uart(void);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* 文件:input.h
|
||||
* 功能:将外设输入的数据转换为单片机内存中的数据
|
||||
* 文件:input.h
|
||||
* 功能:将外设输入的数据转换为单片机内存中的数据
|
||||
*/
|
||||
|
||||
#ifndef INPUT_H
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* key.h - 监测并采集按键的输入
|
||||
* 共有四种输入,无键,单击,双击,长击。
|
||||
* 使用一个定时器每10ms采集一次io状态来实现的。
|
||||
/* key.h - 监测并采集按键的输入
|
||||
* 共有四种输入,无键,单击,双击,长击。
|
||||
* 使用一个定时器每10ms采集一次io状态来实现的。
|
||||
*/
|
||||
|
||||
#ifndef KEY_H
|
||||
|
|
@ -15,7 +15,7 @@ typedef enum key_mean_
|
|||
|
||||
|
||||
/*
|
||||
* key_type - 按键的种类
|
||||
* key_type - 按键的种类
|
||||
*/
|
||||
typedef enum key_type_
|
||||
{
|
||||
|
|
@ -25,31 +25,32 @@ typedef enum key_type_
|
|||
|
||||
|
||||
/*
|
||||
* key_init() - 按键模块初始化
|
||||
* key_init() - 按键模块初始化
|
||||
*
|
||||
*/
|
||||
void key_init(void);
|
||||
|
||||
|
||||
/*
|
||||
* key_detect() - 检测按键
|
||||
* key_detect() - 检测按键
|
||||
*
|
||||
* 要求每隔10ms调用一次
|
||||
* 要求每隔10ms调用一次
|
||||
*/
|
||||
void key_detect(void);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* get_key_mean() - 得到指定的按键信息
|
||||
* get_key_mean() - 得到指定的按键信息
|
||||
*
|
||||
* 这个函数中在取得信息后会将对应按键重新标记为N_KEY
|
||||
* 这个函数中在取得信息后会将对应按键重新标记为N_KEY
|
||||
*/
|
||||
key_mean get_key_mean(key_type key_t);
|
||||
|
||||
|
||||
|
||||
|
||||
void clear_key_m(void);
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* knob.h - 提供旋钮输入的接口函数
|
||||
* knob.h - 提供旋钮输入的接口函数
|
||||
*
|
||||
* 使用的是一个数字旋钮,利用计数来采集输入
|
||||
* 使用的是一个数字旋钮,利用计数来采集输入
|
||||
*/
|
||||
|
||||
#ifndef KNOB_H
|
||||
|
|
@ -14,41 +14,41 @@
|
|||
|
||||
|
||||
/*
|
||||
* knob_init() - 为旋钮输入而执行的初始化
|
||||
* knob_init() - 为旋钮输入而执行的初始化
|
||||
*
|
||||
* 旋钮的检测初始化后默认是禁止的
|
||||
* 旋钮的检测初始化后默认是禁止的
|
||||
*/
|
||||
void knob_init(void);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* knob_enable() - 使能旋钮脉冲检测
|
||||
* knob_enable() - 使能旋钮脉冲检测
|
||||
*/
|
||||
void knob_enable(void);
|
||||
|
||||
|
||||
/*
|
||||
* knob_disable() - 禁止旋钮脉冲检测
|
||||
* knob_disable() - 禁止旋钮脉冲检测
|
||||
*/
|
||||
void knob_disable(void);
|
||||
|
||||
|
||||
/*
|
||||
* knob_clear() - 清除旋钮值
|
||||
* knob_clear() - 清除旋钮值
|
||||
*/
|
||||
void knob_clear(void);
|
||||
|
||||
/*
|
||||
* get_knob_val() - 返回旋钮值
|
||||
* get_knob_val() - 返回旋钮值
|
||||
*/
|
||||
int32_t get_knob_val(void);
|
||||
|
||||
|
||||
/*
|
||||
* knob_detect() - 旋钮检测
|
||||
* knob_detect() - 旋钮检测
|
||||
*
|
||||
* 这个函数需要在旋钮编码器的A相输出发生沿跳变时调用,即上下沿中断时
|
||||
* 这个函数需要在旋钮编码器的A相输出发生沿跳变时调用,即上下沿中断时
|
||||
*/
|
||||
void knob_detect(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
* pm_init.h - 对整个应用程序的初始化
|
||||
* pm_init.h - 对整个应用程序的初始化
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* pm_init() - 初始化
|
||||
* pm_init() - 初始化
|
||||
*/
|
||||
void pm_init(void);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* simulat_timer.h - 实现一个模拟定时器
|
||||
* simulat_timer.h - 实现一个模拟定时器
|
||||
*/
|
||||
|
||||
#ifndef SIMULAT_TIMER_H
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* 模拟定时器的数量
|
||||
* 模拟定时器的数量
|
||||
*/
|
||||
#define SIMULAT_TIMER_NUM 3
|
||||
|
||||
|
|
@ -16,14 +16,14 @@
|
|||
|
||||
typedef struct st_register_
|
||||
{
|
||||
uint8_t count; // 定时器计数
|
||||
uint32_t cmr; // 比较寄存器
|
||||
uint8_t count; // 定时器计数
|
||||
uint32_t cmr; // 比较寄存器
|
||||
struct
|
||||
{
|
||||
uint8_t ten : 1; // 使能标志
|
||||
uint8_t tov : 1; // 溢出标志
|
||||
uint8_t tfc : 1; // 自由运行标志
|
||||
uint8_t tcf : 1; // 比较标志
|
||||
uint8_t ten : 1; // 使能标志
|
||||
uint8_t tov : 1; // 溢出标志
|
||||
uint8_t tfc : 1; // 自由运行标志
|
||||
uint8_t tcf : 1; // 比较标志
|
||||
} flag;
|
||||
} st_register;
|
||||
|
||||
|
|
@ -35,55 +35,55 @@ typedef enum st_mode_
|
|||
} st_mode;
|
||||
|
||||
/*
|
||||
* st_init() - 初始化实现模拟定时器所需的pit定时器
|
||||
* st_init() - 初始化实现模拟定时器所需的pit定时器
|
||||
*
|
||||
* 基础定时为1ms
|
||||
* 基础定时为1ms
|
||||
*/
|
||||
void st_base_init(void);
|
||||
|
||||
|
||||
/*
|
||||
* st_init() - 初始化一个给定编号的模拟定时器
|
||||
* @n: 定时器编号
|
||||
* @st_m: 定时模式
|
||||
* @cmr_v: 定时器比较值,在非比较模式可以为任意值
|
||||
* st_init() - 初始化一个给定编号的模拟定时器
|
||||
* @n: 定时器编号
|
||||
* @st_m: 定时模式
|
||||
* @cmr_v: 定时器比较值,在非比较模式可以为任意值
|
||||
*
|
||||
* 这个函数返回0表示正常完成了初始化任务,返回~0表示定时器已打开或不存在
|
||||
* 这个函数返回0表示正常完成了初始化任务,返回~0表示定时器已打开或不存在
|
||||
*/
|
||||
uint8_t st_init(uint8_t n, st_mode st_m, uint32_t cmr_v);
|
||||
|
||||
|
||||
/*
|
||||
* st_close() - 关闭一个给定编号的模拟定时器
|
||||
* @n: 定时器编号
|
||||
* st_close() - 关闭一个给定编号的模拟定时器
|
||||
* @n: 定时器编号
|
||||
*/
|
||||
void st_close(uint8_t n);
|
||||
|
||||
/*
|
||||
* st_tcf() - 查询tcf位返回
|
||||
* @n: 定时器编号
|
||||
* st_tcf() - 查询tcf位返回
|
||||
* @n: 定时器编号
|
||||
*
|
||||
* 这个函数在没有过比较值的时候返回0,已过比较值得时候返回1,对于不存在或未打开
|
||||
* 这个函数在没有过比较值的时候返回0,已过比较值得时候返回1,对于不存在或未打开
|
||||
*/
|
||||
uint8_t st_tcf(uint8_t n);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* st_tov() - 查询tov位返回
|
||||
* @n: 定时器编号
|
||||
* st_tov() - 查询tov位返回
|
||||
* @n: 定时器编号
|
||||
*
|
||||
* 这个函数在没有溢出时返回0,没有溢出时返回1,对于不存在或未打开
|
||||
* 这个函数在没有溢出时返回0,没有溢出时返回1,对于不存在或未打开
|
||||
*/
|
||||
uint8_t st_tov(uint8_t n);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* st_count() - 查询当前模拟定时值
|
||||
* @n: 定时器编号
|
||||
* st_count() - 查询当前模拟定时值
|
||||
* @n: 定时器编号
|
||||
*
|
||||
* 对于不存在或未打开
|
||||
* 对于不存在或未打开
|
||||
*/
|
||||
uint32_t st_count(uint8_t n);
|
||||
|
||||
|
|
@ -92,9 +92,9 @@ uint32_t st_count(uint8_t n);
|
|||
/********************ISR******************/
|
||||
|
||||
/*
|
||||
* st_base() -定时调用以模拟N路定时器
|
||||
* st_base() -定时调用以模拟N路定时器
|
||||
*
|
||||
* 定时的最小间隔等于这个函数被调用的周期
|
||||
* 定时的最小间隔等于这个函数被调用的周期
|
||||
*/
|
||||
void st_base(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* tft.h - tft接口
|
||||
* tft.h - tft½Ó¿Ú
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -7,8 +7,20 @@
|
|||
#define TFT_H
|
||||
|
||||
|
||||
typedef struct input_limit_
|
||||
{
|
||||
int16_t max;
|
||||
int16_t min;
|
||||
} input_limit;
|
||||
|
||||
void tft_init(void);
|
||||
|
||||
void tft_send_cmd(const char *cmd);
|
||||
|
||||
void tft_left(void);
|
||||
|
||||
void tft_right(void);
|
||||
|
||||
void tft_up(void);
|
||||
|
||||
void tft_down(void);
|
||||
|
|
@ -18,6 +30,10 @@ void tft_ok(void);
|
|||
void tft_ret(void);
|
||||
|
||||
|
||||
int16_t get_value_of_kvp(char *name);
|
||||
|
||||
input_limit tft_input_limit(char *name);
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* time.h - 时间处理
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
uint8_t is_leapyear(uint16_t year);
|
||||
|
||||
|
||||
|
||||
uint8_t get_month_days(uint16_t year, uint8_t month);
|
||||
Loading…
Add table
Add a link
Reference in a new issue