SY8837_Demo_For_OurSelf/UsrSrc/user/user.c

146 lines
3.4 KiB
C
Raw 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.

/*
******************************************************************************
*
* @file user.c
* @brief user module
* @ic sy8835
*
* @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