EBIKE-FreeRTOS/Source/SIF.h
2024-04-16 17:56:53 +08:00

49 lines
1.9 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef SIF_H
#define SIF_H
/* Scheduler include files. */
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"
#include <stdio.h>
#include <string.h>
#include "pico/stdlib.h"
#include "hardware/gpio.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
extern void SIF(void *p);
#endif