# Changes
- Fix Visual glitch in Clear Screen - Add Long Time Screenshot - Try fix sd card issue (still not working)
This commit is contained in:
@ -1,25 +1,27 @@
|
||||
#include "hw_config.h"
|
||||
|
||||
/* SDIO Interface */
|
||||
static sd_sdio_if_t sdio_if = {
|
||||
/*
|
||||
Pins CLK_gpio, D1_gpio, D2_gpio, and D3_gpio are at offsets from pin
|
||||
D0_gpio. The offsets are determined by sd_driver\SDIO\rp2040_sdio.pio.
|
||||
CLK_gpio = (D0_gpio + SDIO_CLK_PIN_D0_OFFSET) % 32;
|
||||
As of this writing, SDIO_CLK_PIN_D0_OFFSET is 30,
|
||||
which is -2 in mod32 arithmetic, so:
|
||||
CLK_gpio = D0_gpio -2.
|
||||
D1_gpio = D0_gpio + 1;
|
||||
D2_gpio = D0_gpio + 2;
|
||||
D3_gpio = D0_gpio + 3;
|
||||
*/
|
||||
.CMD_gpio = 3,
|
||||
.D0_gpio = 4,
|
||||
.baud_rate = 125 * 1000 * 1000 / 6 // 20833333 Hz
|
||||
#include "diskio.h"
|
||||
#include "ff.h" // FatFs
|
||||
#include "hardware/spi.h"
|
||||
|
||||
// 1. SPI hardware + pin config
|
||||
static spi_t spi1_config = {
|
||||
.hw_inst = spi1,
|
||||
.sck_gpio = 10,
|
||||
.mosi_gpio = 11,
|
||||
.miso_gpio = 12,
|
||||
.baud_rate = 10 * 1000 * 1000 // 10 MHz is safe to start
|
||||
};
|
||||
|
||||
/* Hardware Configuration of the SD Card socket "object" */
|
||||
static sd_card_t sd_card = {.type = SD_IF_SDIO, .sdio_if_p = &sdio_if};
|
||||
// 2. SPI interface for SD card
|
||||
static sd_spi_if_t spi_if = {
|
||||
.spi = &spi1_config,
|
||||
.ss_gpio = 9,
|
||||
.set_drive_strength = false // set to true and configure if needed
|
||||
};
|
||||
|
||||
static sd_card_t sd_card = {
|
||||
.type = SD_IF_SPI, .spi_if_p = &spi_if, .use_card_detect = false};
|
||||
|
||||
/**
|
||||
* @brief Get the number of SD cards.
|
||||
|
@ -52,7 +52,7 @@ constexpr uint PinSda = 19;
|
||||
|
||||
TFT tft(PinCs, PinDc, PinRst, PinSck, PinSda);
|
||||
|
||||
#define ClearScreen(c) tft.DrawRect(0, 0, 127, 159, c)
|
||||
#define ClearScreen(c) tft.DrawRect(0, 0, 128, 160, c)
|
||||
|
||||
void DrawChar(uint8_t x, uint8_t y, char c, uint16_t fg, uint16_t bg) {
|
||||
if (c < 0 || c > 255) return;
|
||||
@ -185,31 +185,56 @@ void list_average(float *avg_temp, float *avg_humidity) {
|
||||
bme280_ctx *ctx;
|
||||
|
||||
int init_fs() {
|
||||
printf("Init FS\n");
|
||||
FATFS fs;
|
||||
FRESULT fr = f_mount(&fs, "", 1);
|
||||
if (fr != FR_OK) {
|
||||
printf("f_mount error: %s\n", FRESULT_str(fr));
|
||||
if (!sd_init_driver()) {
|
||||
err("SD driver init failed.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
sd_card_t *sd = sd_get_by_num(0);
|
||||
if (!sd) {
|
||||
err("sd_get_by_num returned NULL");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!sd_card_detect(sd)) {
|
||||
err("SD card detect failed.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char *drive_prefix = sd_get_drive_prefix(sd);
|
||||
if (!drive_prefix) {
|
||||
err("sd_get_drive_prefix returned NULL");
|
||||
return 1;
|
||||
}
|
||||
sleep_ms(1000);
|
||||
FRESULT res = f_mount(&sd->state.fatfs, "0:", 1);
|
||||
if (res != FR_OK) {
|
||||
err(std::format("f_mount failed\nerror code: {}", (int)res).c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
FIL fil;
|
||||
const char *fn = "test.txt";
|
||||
fr = f_open(&fil, fn, FA_OPEN_APPEND | FA_WRITE);
|
||||
FRESULT fr = f_open(&fil, fn, FA_OPEN_APPEND | FA_WRITE);
|
||||
if (fr != FR_OK) {
|
||||
printf("f_open error: %s\n", FRESULT_str(fr));
|
||||
err("f_open failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (f_printf(&fil, "Hello World!\n") < 0) {
|
||||
printf("Failed to write!");
|
||||
err("Failed to write to file");
|
||||
f_close(&fil);
|
||||
return 1;
|
||||
}
|
||||
|
||||
fr = f_close(&fil);
|
||||
if (fr != FR_OK) {
|
||||
printf("f_close error: %s\n", FRESULT_str(fr));
|
||||
err("f_close failed");
|
||||
return 1;
|
||||
}
|
||||
f_unmount("");
|
||||
|
||||
f_unmount(drive_prefix);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -228,10 +253,6 @@ int main() {
|
||||
tft.WriteData16(boot_image[i]);
|
||||
}
|
||||
|
||||
// if (init_fs() != 0) {
|
||||
// return 1;
|
||||
// }
|
||||
|
||||
/// NO WIFI CHECK ///
|
||||
gpio_init(PinNoWifi);
|
||||
gpio_pull_down(PinNoWifi);
|
||||
@ -254,6 +275,9 @@ int main() {
|
||||
sleep_ms(2000);
|
||||
}
|
||||
ClearScreen(0xffff);
|
||||
// if (init_fs() != 0) {
|
||||
// err("FS Init Error");
|
||||
// }
|
||||
|
||||
ctx = bme280_init(I2C_PORT, I2C_SDA, I2C_SCL);
|
||||
if (use_wifi) {
|
||||
|
Reference in New Issue
Block a user