146 lines
3.4 KiB
C
146 lines
3.4 KiB
C
/*
|
||
******************************************************************************
|
||
*
|
||
* @file user.c
|
||
* @brief user module
|
||
* @ic sy8837/8
|
||
*
|
||
* @version 1.0
|
||
* @date 2024/11/01 09:59:40
|
||
* @author Alex Xu
|
||
*
|
||
* Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
|
||
* All Rights Reserved
|
||
*
|
||
* History:
|
||
* Revision Date Author Desc
|
||
* 1.0.0 2024/11/01 Alex Xu build this file
|
||
******************************************************************************
|
||
*/
|
||
/*_____ I N C L U D E S ____________________________________________________*/
|
||
|
||
#include "user.h"
|
||
|
||
|
||
/******************************************************************************\
|
||
Macro definitions
|
||
\******************************************************************************/
|
||
|
||
/******************************************************************************\
|
||
Variables definitions
|
||
\******************************************************************************/
|
||
#if QUEUE
|
||
|
||
idata SeqQueue Queue;
|
||
|
||
#endif
|
||
/******************************************************************************\
|
||
Functions definitions
|
||
\******************************************************************************/
|
||
#if 0
|
||
/*******************************************************************************
|
||
* Function Name : ExtSfr_Write
|
||
* Description : ExtSfr Write a Byte
|
||
* Input : Will Send Date
|
||
* Output : None
|
||
* Return : None
|
||
******************************************************************************
|
||
*/
|
||
void ExtSfr_Write(u8 reg_addr,u8 _dat)
|
||
{
|
||
SFRADDR = reg_addr;
|
||
SFRDATA = _dat;
|
||
}
|
||
|
||
/*******************************************************************************
|
||
* Function Name : ExtSfr_Read
|
||
* Description : ExtSfr Read a Byte
|
||
* Input : Will Send Date
|
||
* Output : None
|
||
* Return : None
|
||
******************************************************************************
|
||
*/
|
||
u8 ExtSfr_Read(u8 reg_addr)
|
||
{
|
||
u8 Data = 0;
|
||
|
||
SFRADDR = reg_addr;
|
||
Data = SFRDATA;
|
||
|
||
return Data;
|
||
}
|
||
#endif
|
||
#if QUEUE
|
||
|
||
void InitQueue(SeqQueue *queue)
|
||
{
|
||
queue->qFront = 0;
|
||
|
||
queue->qRear = 0;
|
||
}
|
||
|
||
bool IsEmptyQueue(SeqQueue *queue)
|
||
{
|
||
if( queue->qFront == queue->qRear ) //<2F><><EFBFBD><EFBFBD><D7B5>ڶ<EFBFBD>β
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
|
||
bool IsFullQueue(SeqQueue *queue)
|
||
{
|
||
if ( ( (queue->qRear + 1) % QUEUE_SIZE ) == queue->qFront)
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
|
||
char PushQueue(SeqQueue *queue, int value)
|
||
{
|
||
if ( IsFullQueue(queue) )
|
||
return false;
|
||
|
||
queue->BasicArr[queue->qRear] = value; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
queue->qRear = ( queue->qRear
|
||
+ 1 ) % QUEUE_SIZE; //<2F><>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD>λ<EFBFBD><CEBB>
|
||
|
||
return true;
|
||
}
|
||
|
||
char PopQueue(SeqQueue *queue)
|
||
{
|
||
int Pop_Data = 0;
|
||
|
||
if( IsEmptyQueue(queue) ) //<2F><><EFBFBD><EFBFBD><D7B5>ڶ<EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD>
|
||
return Pop_Data;
|
||
|
||
Pop_Data = queue->BasicArr[queue->qFront]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
queue->qFront = ( queue->qFront + 1 ) % QUEUE_SIZE; //ָ<><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||
|
||
return Pop_Data;
|
||
}
|
||
|
||
int AddQueue(SeqQueue *queue)
|
||
{
|
||
char Cur = 0;
|
||
int Value_Add = 0;
|
||
|
||
if( IsEmptyQueue(queue) ) //<2F><><EFBFBD><EFBFBD><D7B5>ڶ<EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD>
|
||
return Value_Add;
|
||
|
||
Cur = queue->qFront;
|
||
|
||
while ( Cur != queue->qRear )
|
||
{
|
||
Value_Add += queue->BasicArr[Cur];
|
||
|
||
Cur = ( Cur + 1 ) % QUEUE_SIZE;
|
||
}
|
||
|
||
return Value_Add;
|
||
}
|
||
|
||
#endif
|
||
|