//********************************************************** // Símbolos especiais utilizados com a família HCS08 // Autor : Fábio Pereira // Para o livro Microcontroladores HCS08: Teoria e Prática //********************************************************** #define BIT_0 1 #define BIT_1 2 #define BIT_2 4 #define BIT_3 8 #define BIT_4 16 #define BIT_5 32 #define BIT_6 64 #define BIT_7 128 #define STOP() {asm stop;} #define WAIT() {asm wait;} #ifdef _MC9S08QG8_H volatile unsigned char OSC_TRIM @ 0xFFAF; volatile unsigned char OSC_FTRIM @ 0xFFAE; // Registrador ICSC2 #define BDIV_1 0 #define BDIV_2 BIT_6 #define BDIV_4 BIT_7 #define BDIV_8 BIT_7 + BIT_6 #define bRANGE BIT_5 #define bHGO BIT_4 #define bLP BIT_3 #define bEREFS BIT_2 #define bERCLKEN BIT_1 #define bEREFSTEN BIT_0 #elif defined(_MC9S08QG4_H) volatile unsigned char OSC_TRIM @ 0xFFAF; volatile unsigned char OSC_FTRIM @ 0xFFAE; // Registrador ICSC2 #define BDIV_1 0 #define BDIV_2 BIT_6 #define BDIV_4 BIT_7 #define BDIV_8 BIT_7 + BIT_6 #define bRANGE BIT_5 #define bHGO BIT_4 #define bLP BIT_3 #define bEREFS BIT_2 #define bERCLKEN BIT_1 #define bEREFSTEN BIT_0 #else // Registrador ICGC1 #define bRANGE BIT_6 #define bREFS BIT_5 #define bCLKS1 BIT_4 #define bCLKS0 BIT_3 #define bOSCSTEN BIT_2 #define ICG_SCM 0 #define ICG_FEI bCLKS0 #define ICG_FBE bCLKS1 #define ICG_FEE bCLKS1 + bCLKS0 //Registrador ICGS1 #define bCLKST1 BIT_7 #define bLCKST0 BIT_6 #define bREFST BIT_5 #define bLOLS BIT_4 #define bLOCK BIT_3 #define bLOCS BIT_2 #define bERCS BIT_1 #define bICGIF BIT_0 //Registrador ICGS2 #define bDCOS BIT_0 #endif // Registrador SOPT #define bCOPE BIT_7 #define bCOPT BIT_6 #define bSTOPE BIT_5 #define bBKGDPE BIT_1 #define bRSTPE BIT_0 // Registrador SOPT2 #define bCOPCLKS BIT_7 #define bIICPS BIT_1 #define bACIC BIT_0 // Registrador SRS #define bPOR BIT_7 #define bPIN BIT_6 #define bCOP BIT_5 #define bILOP BIT_4 #define bILAD BIT_3 #define bICG BIT_2 #define bLVD BIT_1 // Registrador SPMSC1 #define bLVDF BIT_7 #define bLVDACK BIT_6 #define bLVDIE BIT_5 #define bLVDRE BIT_4 #define bLVDSE BIT_3 #define bLVDE BIT_2 #define bBGBE BIT_0 // Registrador SPMC2 #define bLVWF BIT_7 #define bLVWACK BIT_6 #define bLVDV BIT_5 #define bLVWV BIT_4 #define bPDF BIT_4 #define bPPDF BIT_3 #define bPPDACK BIT_2 #define bPDC BIT_1 #define bPPDC BIT_0 #define SEL_STOP3 0 #define SEL_STOP2 bPDC + bPPDC #define SEL_STOP1 bPDC // Registrador IRQSC #define bIRQDD BIT_6 #define bIRQEDG BIT_5 #define bIRQPE BIT_4 #define bIRQF BIT_3 #define bIRQACK BIT_2 #define bIRQIE BIT_1 #define bIRQMOD BIT_0 // Registrador SRTISC #define bRTIF BIT_7 #define bRTIACK BIT_6 #define bRTICLKS BIT_5 #define bRTIE BIT_4 #define bRTIS2 BIT_2 #define bRTIS1 BIT_1 #define bRTIS0 BIT_0 #define RTI_OFF 0 #define RTI_8ms 1 #define RTI_DIV256 1 #define RTI_32ms 2 #define RTI_DIV1024 2 #define RTI_64ms 3 #define RTI_DIV2048 3 #define RTI_128ms 4 #define RTI_DIV4096 4 #define RTI_256ms 5 #define RTI_DIV8192 5 #define RTI_512ms 6 #define RTI_DIV16384 6 #define RTI_1024ms 7 #define RTI_DIV32768 7 // Registrador KBISC #define bKBEDG7 BIT_7 #define bKBEDG6 BIT_6 #define bKBEDG5 BIT_5 #define bKBEDG4 BIT_4 #define bKBF BIT_3 #define bKBACK BIT_2 #define bKBIE BIT_1 #define bKBIMOD BIT_0 // Registrador ICSC1 #define ICS_FLL 0 #define ICS_REF_INT BIT_6 #define ICS_REF_EXT BIT_7 #define RDIV_1 0 #define RDIV_2 BIT_3 #define RDIV_4 BIT_4 #define RDIV_8 BIT_4 + BIT_3 #define RDIV_16 BIT_5 #define RDIV_32 BIT_5 + BIT_3 #define RDIV_64 BIT_5 + BIT_4 #define RDIV_128 BIT_5 + BIT_4 + BIT_3 #define bIREFS BIT_2 #define bIRCLKEN BIT_1 #define bIREFSTEN BIT_0 // Registrador ICSSC #define bCLKST1 BIT_3 #define bCLKST0 BIT_2 #define bOSCINIT BIT_1 #define bFTRIM BIT_0 //Registrador ICGC2 #define bLOLRE BIT_7 #define bMFD2 BIT_6 #define bMFD1 BIT_5 #define bMFD0 BIT_4 #define bLOCRE BIT_3 #define bRFD2 BIT_2 #define bRFD1 BIT_1 #define bRFD0 BIT_0 #define MFDx4 0 #define MFDx6 bMFD0 #define MFDx8 bMFD1 #define MFDx10 bMFD1 + bMFD0 #define MFDx12 bMFD2 #define MFDx14 bMFD2 + bMFD0 #define MFDx16 bMFD2 + bMFD1 #define MFDx18 bMFD2 + bMFD1 + bMFD0 #define RFD_DIV1 0 #define RFD_DIV2 1 #define RFD_DIV4 2 #define RFD_DIV8 3 #define RFD_DIV16 4 #define RFD_DIV32 5 #define RFD_DIV64 6 #define RFD_DIV128 7 // Registrador TPMSC #define bTOF BIT_7 #define bTOIE BIT_6 #define bCPWMS BIT_5 #define bCLKSB BIT_4 #define bCLKSA BIT_3 #define bPS2 BIT_2 #define bPS1 BIT_1 #define bPS0 BIT_0 #define TPM_OFF bCLKSA + bCLKSB #define TPM_BUSCLK bCLKSA #define TPM_XCLK bCLKSB #define TPM_EXT bCLKSB + bCLKSA #define TPM_DIV1 0 #define TPM_DIV2 1 #define TPM_DIV4 2 #define TPM_DIV8 3 #define TPM_DIV16 4 #define TPM_DIV32 5 #define TPM_DIV64 6 #define TPM_DIV128 7 // Registrador TPMxCxSC #define bCHF BIT_7 #define bCHIE BIT_6 #define bMSB BIT_5 #define bMSA BIT_4 #define bELSB BIT_3 #define bELSA BIT_2 #define TPM_CAPTURE_RISING_EDGE bELSA #define TPM_CAPTURE_FALLING_EDGE bELSB #define TPM_CAPTURE_BOTH_EDGES bELSA + bELSB #define TPM_COMPARE_INT bMSA #define TPM_COMPARE_TOGGLE bMSA + bELSA #define TPM_COMPARE_CLEAR bMSA + bELSB #define TPM_COMPARE_SET bMSA + bELSB + bELSA #define TPM_PWM_HIGH bMSB + bELSB #define TPM_PWM_LOW bMSB + bELSA // Registrador MTIMSC #define bTOF BIT_7 #define bTOIE BIT_6 #define bTRST BIT_5 #define bTSTP BIT_4 // Registrador MTIMCLK #define MTIM_BUSCLK 0 #define MTIM_XCLK BIT_4 #define MTIM_EXT_FALLING_EDGE BIT_5 #define MTIM_EXT_RISING_EDGE BIT_5 + BIT_4 #define MTIM_DIV1 0 #define MTIM_DIV2 1 #define MTIM_DIV4 2 #define MTIM_DIV8 3 #define MTIM_DIV16 4 #define MTIM_DIV32 5 #define MTIM_DIV64 6 #define MTIM_DIV128 7 #define MTIM_DIV256 8 // Registrador ATDC #define bATDPU BIT_7 #define bDJM BIT_6 #define bRES8 BIT_5 #define bSGN BIT_4 #define ATD_PRS2 0 #define ATD_PRS4 1 #define ATD_PRS6 2 #define ATD_PRS8 3 #define ATD_PRS10 4 #define ATD_PRS12 5 #define ATD_PRS14 6 #define ATD_PRS16 7 #define ATD_PRS18 8 #define ATD_PRS20 9 #define ATD_PRS22 10 #define ATD_PRS24 11 #define ATD_PRS26 12 #define ATD_PRS28 13 #define ATD_PRS30 14 #define ATD_PRS32 15 // Registrador ATDSC #define bCCF BIT_7 #define bATDIE BIT_6 #define bATDCO BIT_5 #define ATD_AD0 0 #define ATD_AD1 1 #define ATD_AD2 2 #define ATD_AD3 3 #define ATD_AD4 4 #define ATD_AD5 5 #define ATD_AD6 6 #define ATD_AD7 7 #define ATD_VREFH 30 #define ATD_VREFL 31 // Registrador ADCSC1 #define bCOCO BIT_7 #define bAIEN BIT_6 #define bADCO BIT_5 #define ADCH0 0 #define ADCH1 1 #define ADCH2 2 #define ADCH3 3 #define ADCH4 4 #define ADCH5 5 #define ADCH6 6 #define ADCH7 7 #define AD_TEMP_SENSOR 26 #define AD_BANDGAP 27 #define ADCHREFH 29 #define ADCHREFL 30 #define ADC_OFF 31 // Registrador ADCSC2 #define bADACT BIT_7 #define bADTRG BIT_6 #define bACFE BIT_5 #define bACFGT BIT_4 // Registrador ADCCFG #define bADLPC BIT_7 #define ADIV_1 0 #define ADIV_2 BIT_5 #define ADIV_4 BIT_6 #define ADIV_8 BIT_6 + BIT_5 #define ADLSMP BIT_4 #define ADC_8BITS 0 #define ADC_10BITS BIT_3 #define ADC_BUSCLK 0 #define ADC_BUSCLK_DIV2 1 #define ADC_ALTCLK 2 #define ADC_INTCLK 3 // Registrador ACMPSC #define bACME BIT_7 #define bACBGS BIT_6 #define bACF BIT_5 #define bACIE BIT_4 #define bACO BIT_3 #define bACOPE BIT_2 #define ACMOD_0 0 #define ACMOD_1 BIT_0 #define ACMOD_2 BIT_1 #define ACMOD_3 BIT_1 + BIT_0 // Registrador SCIC1 #define bLOOPS BIT_7 #define bSCISWAI BIT_6 #define bRSRC BIT_5 #define bM BIT_4 #define bWAKE BIT_3 #define bILT BIT_2 #define bPE BIT_1 #define bPT BIT_0 // Registrador SCIC2 #define bTIE BIT_7 #define bTCIE BIT_6 #define bRIE BIT_5 #define bILIE BIT_4 #define bTE BIT_3 #define bRE BIT_2 #define bRWU BIT_1 #define bSBK BIT_0 // Registrador SCIC3 #define bR8 BIT_7 #define bT8 BIT_6 #define bTXDIR BIT_5 #define bTXINV BIT_4 #define bORIE BIT_3 #define bNEIE BIT_2 #define bFEIE BIT_1 #define bPEIE BIT_0 // Registrador SCIS1 #define bTDRE BIT_7 #define bTC BIT_6 #define bRDRF BIT_5 #define bIDLE BIT_4 #define bOR BIT_3 #define bNF BIT_2 #define bFE BIT_1 #define bPF BIT_0 // Registrador SCIS2 #define bBRK13 BIT_2 #define bRAF BIT_0 // Registrador SPIC1 #define bSPIE BIT_7 #define bSPE BIT_6 #define bSPTIE BIT_5 #define bMSTR BIT_4 #define bCPOL BIT_3 #define bCPHA BIT_2 #define bSSOE BIT_1 #define bLSBFE BIT_0 // Registrador SPIC2 #define bMODFEN BIT_4 #define bBIDIROE BIT_3 #define bSPISWAI BIT_1 #define bSPC0 BIT_0 // Registrador SPIS #define bSPRF BIT_7 #define bSPTEF BIT_5 #define bMODF BIT_4 // Registrador SPIBR #define bSPPR2 BIT_6 #define bSPPR1 BIT_5 #define bSPPR0 BIT_4 #define bSPR2 BIT_2 #define bSPR1 BIT_1 #define bSPR0 BIT_0 #define SPI_PRE1 0 #define SPI_PRE2 bSPPR0 #define SPI_PRE3 bSPPR1 #define SPI_PRE4 bSPPR1+bSPPR0 #define SPI_PRE5 bSPPR2 #define SPI_PRE6 bSPPR2+bSPPR0 #define SPI_PRE7 bSPPR2+bSPPR1 #define SPI_PRE8 bSPPR2+bSPPR1+bSPPR0 #define SPI_DIV2 0 #define SPI_DIV4 bSPR0 #define SPI_DIV8 bSPR1 #define SPI_DIV16 bSPR1+bSPR0 #define SPI_DIV32 bSPR2 #define SPI_DIV64 bSPR2+bSPR0 #define SPI_DIV128 bSPR2+bSPR1 #define SPI_DIV256 bSPR2+bSPR1+bSPR0 // Registrador IICC #define bIICEN BIT_7 #define bIICIE BIT_6 #define bMST BIT_5 #define bTX BIT_4 #define bTXAK BIT_3 #define bRSTA BIT_2 // Registrador IICS #define bTCF BIT_7 #define bIAAS BIT_6 #define bBUSY BIT_5 #define bARBL BIT_4 #define bSRW BIT_2 #define bIICIF BIT_1 #define bRXAK BIT_0 // Registrador IICF #define I2C_M1 0 #define I2C_M2 BIT_6 #define I2C_M4 BIT_7 // Registrador FCDIV #define bDIVLD BIT_7 #define bPRDIV8 BIT_6 // Registradores FOPT e NVOPT #define bKEYEN BIT_7 #define bFNORED BIT_6 #define bSEC01 BIT_1 #define bSEC00 BIT_0 #define MEM_SECURE 0 #define MEM_UNSECURE bSEC01 // Registrador FCNFG #define bKEYACC BIT_5 // Registradores FPROT e NVPROT #define bFPOEN BIT_7 #define bFPDIS BIT_6 #define bFPS2 BIT_5 #define bFPS1 BIT_4 #define bFPS0 BIT_3 #define bFPDIS0 BIT_0 // Registrador FSTAT #define bFCBEF BIT_7 #define bFCCF BIT_6 #define bFPVIOL BIT_5 #define bFACCERR BIT_4 #define bFBLANK BIT_2 // Registrador FCMD #define CMD_BLANK 0x05 #define CMD_BYTEPROG 0x20 #define CMD_BURSTPROG 0x25 #define CMD_PAGEERASE 0x40 #define CMD_MASSERASE 0x41