Files
Cnomicon/src/libPIC/portb.h
2021-01-22 10:16:20 -05:00

151 lines
4.4 KiB
C

/*****************************************************************************
* Copyright (C) 2008
* ProbeStar Telematics, LLC
* All Rights Reserved. Proprietary and Confidential.
*============================================================================
* PIC Port B
*----------------------------------------------------------------------------
* Int Pin 0 Interrupt
* Int Pin 1-2 Interrupt
* Int Pin 4-7 Change detect
*****************************************************************************/
/* prevent multiple inclusions */
#ifndef _PORTB_H_
#define _PORTB_H_
/*****************************************************************************
* includes
*****************************************************************************/
// this is application specific
#include "system.h"
#include "types.h"
/*****************************************************************************
* defines
*****************************************************************************/
/*****************************************************************************
* macros
*****************************************************************************/
// INT0
#ifdef RB0_PIN
#define PortB0Clr() g_bRb0Flag=0
#define PortB0Set() g_bRb0Flag=1
#define PortB0Get() g_bRb0Flag
#define PortB0Clear() g_wRb0Count0=0
#define PortB0Count() g_wRb0Count0
#define PortB0Read() g_stCount0.dw // timer #1 reading
#endif
// INT0-2
#ifdef _PIC18
#ifdef RB1_PIN
#define PortB1Clr() g_bRb1Flag=0
#define PortB1Set() g_bRb1Flag=1
#define PortB1Get() g_bRb1Flag
#define PortB1Clear() g_wRb1Count=0
#define PortB1Count() g_wRb1Count
#endif
#ifdef RB2_PIN
#define PortB2Clr() g_bRb2Flag=0
#define PortB2Set() g_bRb2Flag=1
#define PortB2Get() g_bRb2Flag
#define PortB2Clear() g_wRb2Count=0
#define PortB2Count() g_wRb2Count
#endif
#endif
#define PortB4567Flag() g_bRb4567Flag
#define PortB4567Clear() g_bRb4567Flag=0
#ifdef RB4_PIN
#define PortB4High() g_wRb4High
#define PortB4Low() g_wRb4Low
#endif
#ifdef RB5_PIN
#define PortB5High() g_wRb5High
#define PortB5Low() g_wRb5Low
#endif
#ifdef RB6_PIN
#define PortB6High() g_wRb6High
#define PortB6Low() g_wRb6Low
#endif
#ifdef RB7_PIN
#define PortB7High() g_wRb7High
#define PortB7Low() g_wRb7Low
#endif
/*****************************************************************************
* structs & typedefs
*****************************************************************************/
/*****************************************************************************
* global constants
*****************************************************************************/
/*****************************************************************************
* global variables
*****************************************************************************/
#ifdef RB0_PIN
LIBBANK extern volatile bit g_bRb0Flag;
LIBBANK extern volatile long_dword g_stCount0;
LIBBANK extern volatile WORD g_wRb0Counter;
#endif
#ifdef RB1_PIN
LIBBANK extern volatile bit g_bRb1Flag;
LIBBANK extern volatile WORD g_wRb1Counter;
#endif
#ifdef RB2_PIN
LIBBANK extern volatile bit g_bRb2Flag;
LIBBANK extern volatile WORD g_wRb2Counter;
#endif
LIBBANK extern volatile bit g_bRb4567Flag;
#ifdef RB4_PIN
LIBBANK extern volatile bit g_bRb4Flag;
LIBBANK extern volatile WORD g_wRb4Low;
LIBBANK extern volatile WORD g_wRb4High;
#endif
#ifdef RB5_PIN
LIBBANK extern volatile bit g_bRb5Flag;
LIBBANK extern volatile WORD g_wRb5Low;
LIBBANK extern volatile WORD g_wRb5High;
#endif
#ifdef RB6_PIN
LIBBANK extern volatile bit g_bRb6Flag;
LIBBANK extern volatile WORD g_wRb6Low;
LIBBANK extern volatile WORD g_wRb7High;
#endif
#ifdef RB7_PIN
LIBBANK extern volatile bit g_bRb7Flag;
LIBBANK extern volatile WORD g_wRb7Low;
LIBBANK extern volatile WORD g_wRb7High;
#endif
/*****************************************************************************
* C function prototypes
*****************************************************************************/
/* export C functions to C++ */
#ifdef __cplusplus
extern "C" {
#endif
// interrupt pins
extern void PortB0Init( void );
extern void PortB0Handler( void );
extern void PortB12Init( BYTE byPins );
extern void PortB12Handler( void );
extern void PortB4567Init( void );
extern void PortB4567Handler( void );
#ifdef __cpluscplus
}
#endif
#endif