Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

Project Request

Return
Ahmet Ay
isidur

posted on 2013/04/11 11:32:38 AM CEST

Storage

TFT PIC32 FAT32 file system

Hello,

I want to use FAT32 library (download libstock PIC32) but visual tft supported fat16 library.(not FAT32) What do I need to change? and or visual tft supports fat32
please help me?

how to use global definations (fat 16)

// MMC/SD Connections
sbit Mmc_Chip_Select at LATD12_bit;
sbit Mmc_Chip_Select_Direction at TRISD12_bit;
// end of MMC/SD
// TFT Get Data globals
char Ext_Data_Buffer[512];
unsigned long currentSector = -1, res_file_size;
// end of TFT Get Data

void Init_Ext_Mem() {
//--- set up SPI for the file read
PPS_Mapping(104, _OUTPUT, _SDO3);
PPS_Mapping(98, _INPUT, _SDI3);
PPS_Mapping(79, _OUTPUT, _SCK3OUT);
// Initialize SPI
SPI3_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, _SPI_PRESCALE_SEC_4, _SPI_PRESCALE_PRI_16,
_SPI_SS_DISABLE, _SPI_DATA_SAMPLE_END, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE);
Delay_ms(10);

// Initialize MMC
if (!Mmc_Fat_Init()) {
// Reinitialize SPI at higher speed
SPI3_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, _SPI_PRESCALE_SEC_2, _SPI_PRESCALE_PRI_16,
_SPI_SS_DISABLE, _SPI_DATA_SAMPLE_END, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE);

// Open resource file for read
Mmc_Fat_Assign("%FILE_NAME", 0);
Mmc_Fat_Reset(&res_file_size);
}
}


char* TFT_Get_Data(unsigned long offset, unsigned int count, unsigned int *num) {
unsigned long start_sector;
unsigned int pos;

start_sector = Mmc_Get_File_Write_Sector() + offset/512;
pos = (unsigned long)offset%512;

if(start_sector == currentSector+1) {
Mmc_Multi_Read_Sector(Ext_Data_Buffer);
currentSector = start_sector;
} else if (start_sector != currentSector) {
if(currentSector != -1)
Mmc_Multi_Read_Stop();
Mmc_Multi_Read_Start(start_sector);
Mmc_Multi_Read_Sector(Ext_Data_Buffer);
currentSector = start_sector;
}

if(count>512-pos)
*num = 512-pos;
else
*num = count;

return Ext_Data_Buffer+pos;
}