📄 _fat.def
字号:
#ifndef _FAT16_DEF_
// The FAT16_MAX_FILES_OPEN #define is only applicable when Dynamic
// memeory allocation is not used (FAT16_DYNAMIC_MEM not defined).
// Defines how many concurent open files can exist at the same time.
// Takes up static memory. If you do not need to open more than one
// file at the same time, then you should set this to 1 to reduce
// memory usage
#define FAT16_MAX_FILES_OPEN 1
// Select appropriate media interface port based on your hardware.
//#define FAT_MEDIA_IF_SPI
#define FAT_MEDIA_IF_SPI1
//#define FAT_MEDIA_IF_SPI2
// Define the system clock speed
#define SYSTEM_CLOCK (DWORD)16000000
// Defines the card type
// 0: CompactFlash
// 1: SD/MMC
#if 1
#define USE_SDMMC
#else
#define USE_COMPACTFLASH
#endif
// Determines processor type
#ifdef __18CXX
#define USE_PIC18
#elif defined __PIC24F__
#define USE_PIC24
#define USE_PIC24F
#elif defined __PIC24H__
#define USE_PIC24
#define USE_PIC24H
#elif defined __dsPIC30F__
#define USE_PIC24
#define USE_PIC30
#elif defined __dsPIC33F__
#define USE_PIC24
#define USE_PIC33
#else
#error "Use PIC18, PIC24, dsPIC30, or dsPIC33 processors"
#endif
// Define FAT16_DYNAMIC_MEM to use malloc for allocating
// FILE structure space. uncomment all three lines
#if 0
#define FAT16_DYNAMIC_MEM
#ifdef USE_PIC18
#define FAT16_malloc SRAMalloc
#define FAT16_free SRAMfree
#else
#define FAT16_malloc malloc
#define FAT16_free free
#endif
#endif
/******************************************************************/
/* Pin Definitions */
/******************************************************************/
/* For SD cards */
#ifdef USE_SDMMC
#ifdef USE_PIC18
// Defines for use with the FS-USB board
#define SD_CS LATBbits.LATB3
#define SD_CS_TRIS TRISBbits.TRISB3
#define SD_CD PORTBbits.RB4
#define SD_CD_TRIS TRISBbits.TRISB4
#define SD_WE PORTAbits.RA4
#define SD_WE_TRIS TRISAbits.TRISA4
#elif defined USE_PIC33
#define SD_CS _LATB1
#define SD_CS_TRIS _TRISB1
#define SD_CD _RF0
#define SD_CD_TRIS _TRISF0
#define SD_WE _RF1
#define SD_WE_TRIS _TRISF1
#elif defined USE_PIC30
#define SD_CS _LATG2
#define SD_CS_TRIS _TRISG2
#define SD_CD _RG3
#define SD_CD_TRIS _TRISG3
#define SD_WE _RG6
#define SD_WE_TRIS _TRISG6
#elif defined USE_PIC24
#define SD_CS PORTBbits.RB1
#define SD_CS_TRIS TRISBbits.TRISB1
#define SD_CD PORTFbits.RF0
#define SD_CD_TRIS TRISFbits.TRISF0
#define SD_WE PORTFbits.RF1
#define SD_WE_TRIS TRISFbits.TRISF1
#endif
#endif
/* For CF cards */
#ifdef USE_COMPACTFLASH
#ifdef USE_PIC18
// Address lines
#define ADDBL LATA // address bus Low A0-3
#define ADDDIR TRISA
// Data bus
#define DATABIN PORTD // data bus D0-7
#define DATABOUT LATD
#define DATADIR TRISD
// control bus lines
#define CF_CE LATEbits.LATE1 // o -CF card chip select
#define CF_CEDIR TRISEbits.TRISE1
#define CF_OE LATAbits.LATA5 // o -Output Enable
#define CF_OEDIR TRISAbits.TRISA5
#define CF_WE LATAbits.LATA4 // o -Write Enable
#define CF_WEDIR TRISAbits.TRISA4
#define CF_RST LATEbits.LATE0 // o CF Reset
#define CF_RESETDIR TRISEbits.TRISE0
#define CF_RDY PORTEbits.RE2 // i CF rdy signal
#define CF_READYDIR TRISEbits.TRISE2
#define CF_CD1 PORTCbits.RC2 // i -CF card detect (w. pull up)
#define CF_CD1DIR TRISCbits.TRISC2
#elif defined USE_PIC30
// Address lines
#define ADDR0 _LATB15
#define ADDR1 _LATB14
#define ADDR2 _LATG9
#define ADDR3 _LATG8
#define ADRTRIS0 _TRISB15
#define ADRTRIS1 _TRISB14
#define ADRTRIS2 _TRISG9
#define ADRTRIS3 _TRISG8
// Data bus
#define DATABIN PORTE // data bus D0-7
#define DATABOUT PORTE
#define DATADIR TRISE
// control bus lines
#define CF_CE _RD11 // o -CF card chip select
#define CF_CEDIR _TRISD11
#define CF_OE _RD5 // o -Output Enable
#define CF_OEDIR _TRISD5
#define CF_WE _RD4 // o -Write Enable
#define CF_WEDIR _TRISD4
#define CF_RST _RD0 // o CF Reset
#define CF_RESETDIR _TRISD0
#define CF_RDY _RD12 // i CF rdy signal
#define CF_READYDIR _TRISD12
#define CF_CD1 _RC4 // i -CF card detect (w. pull up)
#define CF_CD1DIR _TRISC4
#elif defined USE_PIC33
// Address lines
#define ADDR0 _LATB15
#define ADDR1 _LATB14
#define ADDR2 _LATG9
#define ADDR3 _LATG8
#define ADRTRIS0 _TRISB15
#define ADRTRIS1 _TRISB14
#define ADRTRIS2 _TRISG9
#define ADRTRIS3 _TRISG8
// Data bus
#define DATABIN PORTE // data bus D0-7
#define DATABOUT PORTE
#define DATADIR TRISE
// control bus lines
#define CF_CE _RD11 // o -CF card chip select
#define CF_CEDIR _TRISD11
#define CF_OE _RD5 // o -Output Enable
#define CF_OEDIR _TRISD5
#define CF_WE _RD4 // o -Write Enable
#define CF_WEDIR _TRISD4
#define CF_RST _RD0 // o CF Reset
#define CF_RESETDIR _TRISD0
#define CF_RDY _RD12 // i CF rdy signal
#define CF_READYDIR _TRISD12
#define CF_CD1 _RC4 // i -CF card detect (w. pull up)
#define CF_CD1DIR _TRISC4
#elif defined USE_PIC24
// Address lines
#define ADDR0 LATBbits.LATB15
#define ADDR1 LATBbits.LATB14
#define ADDR2 LATGbits.LATG9
#define ADDR3 LATGbits.LATG8
#define ADRTRIS0 TRISBbits.TRISB15
#define ADRTRIS1 TRISBbits.TRISB14
#define ADRTRIS2 TRISGbits.TRISG9
#define ADRTRIS3 TRISGbits.TRISG8
// Data bus
#define DATABIN PORTE // data bus D0-7
#define DATABOUT PORTE
#define DATADIR TRISE
// control bus lines
#define CF_CE PORTDbits.RD11 // o -CF card chip select
#define CF_CEDIR TRISDbits.TRISD11
#define CF_OE PORTDbits.RD5 // o -Output Enable
#define CF_OEDIR TRISDbits.TRISD5
#define CF_WE PORTDbits.RD4 // o -Write Enable
#define CF_WEDIR TRISDbits.TRISD4
#define CF_RST PORTDbits.RD0 // o CF Reset
#define CF_RESETDIR TRISDbits.TRISD0
#define CF_RDY PORTDbits.RD12 // i CF rdy signal
#define CF_READYDIR TRISDbits.TRISD12
#define CF_CD1 PORTCbits.RC4 // i -CF card detect (w. pull up)
#define CF_CD1DIR TRISCbits.TRISC4
#endif
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -