⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex_support.c

📁 全场地位系统:小车静止或移动过程中码盘进行全场定位,用的是avr单片机
💻 C
字号:
/***********************************************************
*   函数库说明:底层硬件初始化驱动函数库                   *
*   版本:                                                 *
*   作者:                                                 *
*   创建日期:                                             *
* -------------------------------------------------------- *
*  [硬件说明]                                              *
*   处理器:                                               *
*   系统时钟:                                             *
* -------------------------------------------------------- *
*  [支 持 库]                                              *
*   支持库名称:HD_Support.h                               *
*   需要版本:  -----                                      *
*   支持库说明:底层硬件初始化声明库                       *
*                                                          *
*   支持库名称:EX_Support.h                               *
*   需要版本:  -----                                      *
*   支持库说明:底层硬件初始化驱动声明库                   *
*                                                          *
*   支持库名称:PF_Config.h                                *
*   需要版本:  -----                                      *
*   支持库说明:硬件平台配置声明库                         *
* -------------------------------------------------------- *
*  [版本更新]                                              *
*   修改:                                                 *
*   修改日期:                                             *
*   版本:                                                 *
* -------------------------------------------------------- *
*  [版本历史]                                              *
* -------------------------------------------------------- *
*  [使用说明]                                              *
***********************************************************/

/********************
* 头 文 件 配 置 区 *
********************/
# include "PF_Config.h"
# include "Ex_Support.h"
# include "LIB_Config.h"
# include "DL_Config.h"

/********************
*   系 统 宏 定 义  *
********************/

/*------------------*
*   常 数 宏 定 义  *
*------------------*/

/*------------------*
*   动 作 宏 定 义  *
*------------------*/
# pragma ctask Insert_Timer0_OVF_ISR_Code

/********************
*  模块结构体定义区 *
********************/

/********************
*   函 数 声 明 区  *
********************/
void Insert_Timer0_OVF_ISR_Code(void);
void Driver_INIT(void);
void Delay_MS(uint16 wTime);
BOOL PROC_Send_Frame(void);

/********************
*   模块函数声明区  *
********************/



/********************
*   模块变量声明区  *
********************/
static uint16 s_wSystemDelayTimerCounter = 0;


/********************
*   全局变量声明区  *
********************/
uint16 g_wSystemTimer = 0;
INT32 g_lCounterL = 0;
INT32 g_lCounterR = 0;
INT32 g_lCounterLImage = 0;
INT32 g_lCounterRImage = 0;

BYTE g_chSendBuffer[17] = 
                {
                    0xAA,17,0xAC,
                    0,0,0,0,0,0,0,0,0,0,0,0,
                    0,0x55
                };
BYTE g_chReceiveBuffer[17] = {0};
BYTE g_chSPICounter = 0;

/********************
*  全局变量声引用区 *
********************/
extern BOOL g_bRunFlagA;

/***********************************************************
*   函数说明:软件驱动初始化函数                           *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:无                                           *
***********************************************************/
void Driver_INIT(void)
{
    //*在这里插入你的各类软件驱动初始化代码*//
}

/***********************************************************
*   函数说明:数据包发送函数                               *
*   输入:    无                                           *
*   输出:    FALSE                                        *
*   调用函数:无                                           *
***********************************************************/
BOOL PROC_Send_Frame(void)
{
    if (g_chSPICounter)
    {
        return TRUE;
    }
    //处理数据
    TYPE_CONVERSION(&g_chSendBuffer[3],float) = g_fX;
    TYPE_CONVERSION(&g_chSendBuffer[7],float) = g_fY;
    TYPE_CONVERSION(&g_chSendBuffer[11],float) = g_fLastAngle;
    
    {
        UINT8 n = 0;
        BYTE chXOR = 0;
        
        for(n = 1;n < 15;n++)
        {
            chXOR ^= g_chSendBuffer[n];
        }
        
        g_chSendBuffer[15] = chXOR;
    }
    
    //开始发送数据
    SPI_SS = LOW;
    SPDR = g_chSendBuffer[0];
    
    return FALSE;
}

/***********************************************************
*   函数说明:系统毫秒延时函数                             *
*   输入:    需要延时的时间长度                           *
*   输出:    无                                           *
*   调用函数:无                                           *
***********************************************************/
void Delay_MS(uint16 wTime)
{
    s_wSystemDelayTimerCounter = wTime;
    
    while(s_wSystemDelayTimerCounter);
}

/***********************************************************
*   函数说明:定时器0中断处理程序代码插入函数              *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:无                                           *
***********************************************************/
void Insert_Timer0_OVF_ISR_Code(void)
{
    g_wSystemTimer++;

    if (s_wSystemDelayTimerCounter)
    {
        s_wSystemDelayTimerCounter--;
    }
    
    SAFE_CODE_PERFORMANCE
    (
        g_lCounterLImage = g_lCounterL;
        g_lCounterRImage = g_lCounterR;
    )
    g_bRunFlagA = TRUE;
    
    #ifdef _DEBUG
    if (!(g_wSystemTimer & (BIT(5) - 1)))
    {
        LCDSP027_refresh_DISP_BUFF();
    }
    #endif
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -