⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hwmcconfig.h

📁 pic18 TIMER INITIALIZATION
💻 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 + -