EBIKE-FreeRTOS/Source/SIF.h

47 lines
1.9 KiB
C
Raw Normal View History

2024-04-16 11:58:43 +08:00
#ifndef SIF_H
#define SIF_H
/* Scheduler include files. */
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"
#include <stdio.h>
#include <string.h>
#define _SIF_DEBUG_ 1
#define LOW 0 //低电平
#define HIGH 1 //高电平
#define SYNC_TIME_NUM 992 //992Tosc中的992
#define SHORT_TIME_NUM 32 //一个逻辑周期中短的时间32Tosc中的32
#define LONG_TIME_NUM 64 //一个逻辑周期中长的时间64Tosc中的64
#define LOGIC_CYCLE_NUM 96 //一个逻辑周期 SHORT_TIME_NUM + LONG_TIME_NUM
#define HALF_LOGIC_CYCLE 48 //一个逻辑周期的1/2即 LOGIC_CYCLE_NUM/2
#define END_SIGNAL_FLAG_NUM 80 // 判断80左右的位置是否为低电平如果为低电平 则
#define END_SIGNAL_TIME_NUM 100 //结束信号电平时间5ms低电平 + Nms高电平实际检测5ms低电平就行一帧数据发送完成后检测5ms低电平就代表完成了不发数据的时候上拉电阻拉高了
#define REV_BIT_NUM 8 //接收的bit位个数看是按字节接收还是按字接收1字节=8bit1字=2字节=16bit
#define REV_DATA_NUM 16 //接收的数据个数
#define SIF_REV_PIN 13 // 定义sif通信的引脚
#define TOSC 3 // 定义系统TOSC基数倍数,默认定义为3,程序中支持自适应了
void GPIO_SIF_Init(void); // GPIO初始化函数
void Timer_SIF_Init(void); //定时器SIF初始化函数
void TIMER_SIF_IRQHandler(void); // 定时器中断回调函数
void Receive_SIF_Data_Handle(void); //接收数据处理—带校准位,即波特率自适应
void Check_Sum_Handle(void); // 校验和处理
unsigned char *pGetSIFData(void); //获取SIF数据
#ifdef _SIF_DEBUG_
char *pGetLogStr(void); //获取日志字符串
#endif
2024-04-16 11:58:43 +08:00
extern void SIF(void *p);
#endif