#include "mcc_generated_files/system.h" #include "mcc_generated_files/fatfs/fatfs_demo.h" #include "mcc_generated_files/mcc.h" #define FCY 8000000UL #include static FATFS drive; static FIL file; void LMPW(uint8_t addr1,uint8_t addr2,uint8_t data1,uint8_t data2) { CS1_SetLow(); SPI2_Exchange8bit(0x01); SPI2_Exchange8bit(0x00); SPI2_Exchange8bit(addr1); SPI2_Exchange8bit(0x00); SPI2_Exchange8bit(0x00); SPI2_Exchange8bit(0x01); SPI2_Exchange8bit(addr2); SPI2_Exchange8bit(data1); SPI2_Exchange8bit(data2); CS1_SetHigh(); } uint8_t LMPR(uint8_t addr1,uint8_t addr2,uint8_t size) { uint8_t reg_read_data; CS1_SetLow(); SPI2_Exchange8bit(0x09); SPI2_Exchange8bit(0x00); SPI2_Exchange8bit(addr1); SPI2_Exchange8bit(0x01); SPI2_Exchange8bit(size); SPI2_Exchange8bit(addr2); reg_read_data=SPI2_Exchange8bit(0x00); CS1_SetHigh(); return reg_read_data; } void LMPS() { LMPW(0x00,0x00,0x0c,0x03); LMPW(0x00,0x01,0x00,0x01); LMPW(0x00,0x03,0x00,0x00); LMPW(0x00,0x08,0x00,0x00); LMPW(0x00,0x0b,0x00,0x01); LMPW(0x00,0x0e,0x00,0x00); LMPW(0x00,0x0f,0x00,0x00); LMPW(0x01,0x00,0x00,0x02); LMPW(0x01,0x01,0x08,0x00); LMPW(0x01,0x02,0x00,0x02); LMPW(0x01,0x03,0x00,0x00); LMPW(0x01,0x04,0x00,0x00); LMPW(0x01,0x05,0x00,0x00); LMPW(0x01,0x06,0x00,0x00); LMPW(0x01,0x07,0x00,0x00); LMPW(0x01,0x08,0x00,0x00); LMPW(0x01,0x09,0x00,0x00); LMPW(0x01,0x0a,0x00,0x00); LMPW(0x01,0x0b,0x00,0x00); LMPW(0x01,0x0c,0x00,0x00); LMPW(0x01,0x0d,0x00,0x00); LMPW(0x01,0x0e,0x00,0x00); LMPW(0x01,0x0f,0x01,0x08); LMPW(0x20,0x00,0x00,0x01); LMPW(0x20,0x01,0x04,0x00); LMPW(0x20,0x02,0x01,0x03); LMPW(0x20,0x03,0x07,0x00); LMPW(0x20,0x04,0x02,0x05); LMPW(0x20,0x05,0x07,0x00); LMPW(0x20,0x06,0x03,0x07); LMPW(0x20,0x07,0x07,0x00); LMPW(0x20,0x08,0x00,0x01); LMPW(0x20,0x09,0x07,0x00); LMPW(0x20,0x0a,0x01,0x03); LMPW(0x20,0x0b,0x07,0x00); LMPW(0x20,0x0c,0x02,0x05); LMPW(0x20,0x0d,0x07,0x00); LMPW(0x30,0x00,0x00,0x00); LMPW(0x30,0x01,0x00,0x00); LMPW(0x30,0x02,0x00,0x00); LMPW(0x30,0x03,0x08,0x00); LMPW(0x30,0x04,0x00,0x00); LMPW(0x30,0x05,0x00,0x00); LMPW(0x30,0x08,0x00,0x00); LMPW(0x30,0x09,0x00,0x00); LMPW(0x30,0x0a,0x00,0x00); LMPW(0x30,0x0b,0x08,0x00); LMPW(0x30,0x0c,0x00,0x00); LMPW(0x30,0x0d,0x00,0x00); LMPW(0x40,0x00,0x00,0x00); LMPW(0x40,0x01,0x00,0x00); LMPW(0x40,0x02,0x00,0x00); LMPW(0x40,0x03,0x08,0x00); LMPW(0x40,0x04,0x00,0x00); LMPW(0x40,0x05,0x00,0x00); LMPW(0x40,0x08,0x00,0x00); LMPW(0x40,0x09,0x00,0x00); LMPW(0x40,0x0a,0x00,0x00); LMPW(0x40,0x0b,0x08,0x00); LMPW(0x40,0x0c,0x00,0x00); LMPW(0x40,0x0d,0x00,0x00); } int main(void) { uint8_t size1,size2,size3,size4,ADC; char data1[5],data2[5],data3[5],data8[5]; char data4[]="\r\nSize1:"; char data5[]="\r\nSize2:"; char data6[]="\r\nSize3:"; char data7[]="\r\nSize4:"; UINT actualLength; CS1_SetHigh(); SYSTEM_Initialize(); IO_RE5_SetHigh(); __delay_ms(1000); IO_RE5_SetLow(); __delay_ms(1000); LMPS(); IO_RE5_SetHigh(); __delay_ms(1000); IO_RE5_SetLow(); __delay_ms(1000); while (1) { size1=LMPR(0x01,0x0a,0x00); size2=LMPR(0x01,0x0b,0x01); size3=LMPR(0x01,0x0c,0x02); ADC=LMPR(0x01,0x08,0x00); size4=((uint32_t)size1<<16)|((uint16_t)size2<<8)|(size3); sprintf(data1,"%d",size1); sprintf(data2,"%d",size2); sprintf(data3,"%d",size3); //sprintf(data8,"%d",size4); sprintf(data8,"%d",ADC); if( SD_SPI_IsMediaPresent() == false) { return 0; } if (f_mount(&drive,"0:",1) == FR_OK) { if (f_open(&file, "DEMO.TXT", FA_WRITE | FA_OPEN_APPEND ) == FR_OK) { f_write(&file, data4, sizeof(data4)-1, &actualLength ); f_write(&file, data1, sizeof(data1)-1, &actualLength ); f_write(&file, data5, sizeof(data5)-1, &actualLength ); f_write(&file, data2, sizeof(data2)-1, &actualLength ); f_write(&file, data6, sizeof(data6)-1, &actualLength ); f_write(&file, data3, sizeof(data3)-1, &actualLength ); f_write(&file, data7, sizeof(data7)-1, &actualLength ); f_write(&file, data8, sizeof(data8)-1, &actualLength ); f_close(&file); } f_mount(0,"0:",0); } IO_RE5_SetHigh(); __delay_ms(1000); IO_RE5_SetLow(); __delay_ms(1000); } return 1; }