📄 libuart1receiveisr.c
字号:
/*********************************************************************
* *
* Software License Agreement *
* *
* The software supplied herewith by Microchip Technology *
* Incorporated (the "Company") for its dsPIC controller *
* is intended and supplied to you, the Company's customer, *
* for use solely and exclusively on Microchip dsPIC *
* products. The software is owned by the Company and/or its *
* supplier, and is protected under applicable copyright laws. All *
* rights are reserved. Any use in violation of the foregoing *
* restrictions may subject the user to criminal sanctions under *
* applicable laws, as well as to civil liability for the breach of *
* the terms and conditions of this license. *
* *
* THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO *
* WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, *
* BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND *
* FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE *
* COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, *
* INCIDENTAL OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. *
* *
*********************************************************************/
/******************************************************************************
**
** Filename: libuart1ReceiveIsr.c
**
** System: RISC
**
** Platform: dsPIC33F
**
** Description: This file contains only only one ISR for handling UART1 interrupt.
******************************************************************************/
#include <p33Fxxxx.h>
#include "G711Lib_common.h"
/*-----------------------------------------------------------------------------
Global Variables
------------------------------------------------------------------------------*/
extern volatile unsigned int RXcount, fRxCpl, fRxstart;
/******************************************************************************
**
** Function Name: _U1RXInterrupt
**
** Description: This ISR for UART1 interrupt handles data reads and writes
** from/to UART1 buffer registers U1TXREG and U1RXREG and
** stores/retrieves data to/from the ping pong buffers created
** by the user.
*******************************************************************************/
void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt(void)
{
short* temp;
while( !U1STAbits.URXDA ) ;
libuart1Receive ( ); //This API receives compressed
RXcount += 1; //samples.
/* Check whether a Full Block is Received */
if ( RXcount == NUMOFSAMPLESPERBLOCK )
{
fRxCpl = 1; //Flag to indicate that a
// complete Block is received.
PORTDbits.RD0 ^= 0x1; //LED for Debugging Purpose.
fRxstart = 1; //Flag to indicate that data
//Reception was active.
codecdata.sampleComprsOpBuffer -= RXcount;
RXcount = 0;
}
IFS0bits.U1RXIF = 0x00; //Clear UART1 receive interrupt
//flag.
}
/*-----------------------------------------------------------------------------
END OF FILE:libuart1ReceiveIsr.c
-----------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -