49 lines
1.9 KiB
C
49 lines
1.9 KiB
C
#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字节=8bit,1字=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
|