|
|
@@ -62,6 +62,9 @@
|
|
|
|
|
|
#define EV_STR(s) "================ "s" ================"
|
|
|
|
|
|
+//skip interrupt regs.
|
|
|
+#define SLAVE_ADDR(i) ((i) >= 28? (i) + 4: (i))
|
|
|
+
|
|
|
typedef enum {
|
|
|
JOB_IDLE = 0,
|
|
|
JOB_RESET = 1,
|
|
|
@@ -123,19 +126,15 @@ static esp_err_t task_write_reg(void)
|
|
|
{
|
|
|
//the host write REG1, the slave should write its registers according to value of REG1
|
|
|
uint8_t read = sdio_slave_read_reg(1);
|
|
|
- for (int i = 0; i < 64; i++) {
|
|
|
- //skip interrupt regs.
|
|
|
- if (i >= 28 && i <= 31) continue;
|
|
|
- sdio_slave_write_reg(i, read+3*i);
|
|
|
+ for (int i = 0; i < 60; i++) {
|
|
|
+ sdio_slave_write_reg(SLAVE_ADDR(i), read + 3*i);
|
|
|
}
|
|
|
- uint8_t reg[64] = {0};
|
|
|
- for (int i = 0; i < 64; i++) {
|
|
|
- //skip interrupt regs.
|
|
|
- if (i >= 28 && i <= 31) continue;
|
|
|
- reg[i] = sdio_slave_read_reg(i);
|
|
|
+ uint8_t reg[60] = {0};
|
|
|
+ for (int i = 0; i < 60; i++) {
|
|
|
+ reg[i] = sdio_slave_read_reg(SLAVE_ADDR(i));
|
|
|
}
|
|
|
ESP_LOGI(TAG, "write regs:");
|
|
|
- ESP_LOG_BUFFER_HEXDUMP(TAG, reg, 64, ESP_LOG_INFO);
|
|
|
+ ESP_LOG_BUFFER_HEXDUMP(TAG, reg, 60, ESP_LOG_INFO);
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
|