📄 hwmcconfig.h
字号:
#ifndef __HWMCCONFIG_H
#define __HWMCCONFIG_H
#include <pic18.h>
#include "sTDefGeneral.h"
#include "dataTypes.h"
#include "interrupt.h"
// STACK
#define STACK_FULL STKFUL
#define STACK_UNDERFLOW STKUNF
// PORTA A (RA0 - RA6)
#define OSC2 RA6
#define AN_ANTIRIB3 RA5 //Predisposizione Antiribaltamento (Analogico)
#define INDIG_SMP_1 RA4 //CHSALV RA4
#define VREF RA3
#define AN_ANTIRIB2 RA2 //Predisposizione Antiribaltamento (Analogico)
#define AN_ANTIRIB1 RA1 //Predisposizione Antiribaltamento (Analogico)
#define AN_ANTIRIB0 RA0 //Predisposizione Antiribaltamento (Analogico)
// PORTA B (RB0 - RB7)
#define PGD RB7
#define PGC RB6
#define INDIG_SMP_8 RB5
#define RES_RQ RB4
#define INDIG_SMP_9 RB3
#define INDIG_SMP_10 RB2
#define DATA_READY RB1
#define INDIG_SMP_11 RB0
// PORTA C (RC0 - RC7)
#define RS232_RX RC7
#define RS232_TX RC6
#define SPI_SDO RC5
#define SPI_SDI RC4
#define SPI_SCK RC3
#define PinC_2 RC2 //Non Utilizzato
#define INDIG_SMP_2 RC1
#define INDIG_SMP_3 RC0
// PORTA D (RD0 - RD7)
#define INDIG_SMP_16 RD7
#define INDIG_SMP_17 RD6
#define INDIG_SMP_18 RD5
#define INDIG_SMP_19 RD4
#define INDIG_SMP_20 RD3
#define INDIG_SMP_21 RD2
#define INDIG_SMP_22 RD1
#define INDIG_SMP_23 RD0
// PORTA E (RE0 - RE7)
#define INDIG_SMP_24 RE7
#define INDIG_SMP_25 RE6
#define INDIG_SMP_26 RE5
#define INDIG_SMP_27 RE4
#define INDIG_SMP_28 RE3
#define INDIG_SMP_29 RE2
#define INDIG_SMP_32 RE1
#define INDIG_SMP_33 RE0 //Predisposizione Antiribaltamento (Digitale)
// PORTA F (RF0 - RF7)
#define INDIG_SMP_37 RF0 //Predisposizione Antiribaltamento (Analogico)
#define SFICES RF1
#define SFICAB RF2
#define OPTCAB RF3
#define ROTCAB RF4
#define SOLCAB RF5
#define BRACAB RF6
#define DG_ANTIRIB4 RF7 //Predisposizione Antiribaltamento (Digitale)
// PORTA G (RG0 -RG5)
#define MCLR RG5
#define INDIG_SMP_36 RG4
#define INDIG_SMP_35 RG3
#define CAN_RX RG2
#define INDIG_SMP_34 RG1
#define CAN_TX RG0
// PORTA H (RH0 - RH7)
#define BRACES RH7
#define SOLCES RH6
#define ROTCES RH5
#define OPTCES RH4
#define STROBE_EN RH3
#define EV_STATUS RH2
#define INDIG_SMP_30 RH1
#define INDIG_SMP_31 RH0
// PORTA J (RJ0 - RJ7)
#define INDIG_SMP_7 RJ7
#define INDIG_SMP_6 RJ6
#define INDIG_SMP_5 RJ5
#define INDIG_SMP_4 RJ4
#define INDIG_SMP_12 RJ3
#define INDIG_SMP_13 RJ2
#define INDIG_SMP_14 RJ1
#define INDIG_SMP_15 RJ0
// Modulo ADC
#define ADC_EN ADON
#define ADC_IE ADIE
#define ADC_IF ADIF
#define ADCResult ADRES
#define ADCControlRegister_0 ADCON0
#define ADCStartRISE_EndFALL GODONE
#define ADC_EN_CH0 0x01
// Timer hardware 0
#define Timer0_EN TMR0ON
#define Timer0_IE TMR0IE
#define Timer0_IF TMR0IF
#define Timer0_8BCount TMR0
#define Timer0_CountHI TMR0H
#define Timer0_CountLOW TMR0L
#define Timer0_Count(x) Merge16(x, Timer0_CountHI, Timer0_CountLOW)
#define SetTimer0_Count(x) { TMR0H = (uint8)(x >> 8); TMR0L = (uint8)(x && 0x00FF); }
// Timer hardware 1
#define Timer1_EN TMR1ON
#define Timer1_IE TMR1IE
#define Timer1_IF TMR1IF
#define Timer1_WordCount TMR1
#define Timer1_CountHI TMR1H
#define Timer1_CountLOW TMR1L
#define Timer1_Count(x) Merge16(x, Timer1_CountHI, Timer1_CountLOW)
#define SetTimer1_Count(x) { TMR1H = (uint8)(x >> 8); TMR1L = (uint8)(x && 0x00FF); }
// Timer hardware 2
#define Timer2_EN TMR2ON
#define Timer2_IE TMR2IE
#define Timer2_IF TMR2IF
#define Timer2_Count TMR2
#define Timer2_Preset PR2
// Timer hardware 3
#define Timer3_EN TMR3ON
#define Timer3_IE TMR3IE
#define Timer3_IF TMR3IF
#define Timer3_CountHI TMR3H
#define Timer3_CountLOW TMR3L
#define Timer3_Count(x) Merge16(x, Timer3_CountHI, Timer3_CountLOW)
#define SetTimer3_Count(x) { TMR3H = (uint8)(x >> 8); TMR3L = (uint8)(x && 0x00FF); }
// SSP Module
#define SSP_Buffer SSPBUF
#define SSP_ENABLE SSPEN
#define SSP_IE SSPIE
#define SSP_IF SSPIF
#define Write_Collision WCOL
#define Buffer_Full BF
// EUSART Module
#define USART_EN SPEN
#define USART_RX_EN CREN
#define USART_TX_EN TXEN
#define USART_RX_IE RCIE
#define USART_TX_IE TXIE
#define USART_RX_IF RCIF
#define USART_TX_IF TXIF
#define USART_RX RCREG
#define USART_TX TXREG
#define USART_TX_STATUS TRMT
#define USART_OVERRUN_ERROR OERR
#define USART_FRAMING_ERROR FERR
#define USART_TXREG_EMPTY TRMT
// Interrupt Master
#define M_INT_ENABLE GIE
#define P_INT_ENABLE PEIE
// Interrupt esterna
#define INT_ENABLE INT1IE
#define INT_IF INT1IF
#define Restart_wdt() asm("clrwdt")
#define Reset_MCU() asm("reset")
void BabyRun (void);
uint8 CheckStackLevel (void);
void Init_HwCFG (void);
void StartINT (void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -