#ifndef MCRLCONTROLLER_SD_READER_H #define MCRLCONTROLLER_SD_READER_H #include "ff.h" #include "gpio_rp2350.h" #include "posix_io.h" #include "sd_spi_drv.h" #include "spi_rp2350.h" #include "cassert" #define MISO_PIN 4 #define MOSI_PIN 3 #define SCLK_PIN 6 #define CS_PIN 5 class SD_Reader { gpio_rp2350 cs; spi_rp2350 spi; sd_spi_drv sd; FatFs fs; public: SD_Reader() : cs(CS_PIN), spi(MISO_PIN, MOSI_PIN, SCLK_PIN, cs), sd(spi), fs(sd) { posix_io::inst.register_fileio(fs); assert(fs.mount() == FatFs::FR_OK); } ~SD_Reader() { const FatFs::FRESULT erg = fs.umount(); assert(erg == FatFs::FR_OK); } }; #endif //MCRLCONTROLLER_SD_READER_H