aboutsummaryrefslogtreecommitdiff
path: root/src/ppu/stm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ppu/stm.c')
-rw-r--r--src/ppu/stm.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/ppu/stm.c b/src/ppu/stm.c
index 7f60aed..146d275 100644
--- a/src/ppu/stm.c
+++ b/src/ppu/stm.c
@@ -5,17 +5,30 @@
#include "stm32/setup.h"
void hh_ppu_init() {
- hh_ppu_update_aux((hh_s_ppu_loc_aux) { .sysreset = 1 });
- hh_ppu_vram_buffer((uint8_t[4]) { 0xff, 0xff, 0xff, 0xff });
- hh_ppu_flush();
+ // hh_ppu_update_aux((hh_s_ppu_loc_aux) { .sysreset = 1 });
+ // hh_ppu_vram_buffer((uint8_t[4]) { 0xff, 0xff, 0xff, 0xff });
+ // hh_ppu_flush();
HAL_Delay(10);
}
void hh_ppu_deinit() {}
+// void hh_ppu_vram_dwrite(uint8_t* data, size_t size) {
+// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET);
+// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_RESET);
+// HAL_SPI_Transmit_DMA(&hspi1, data, size);
+// }
+
void hh_ppu_vram_dwrite(uint8_t* data, size_t size) {
+ // HAL_SPI_Transmit(&hspi1, data, size, HAL_MAX_DELAY);
+ for (size_t i = 0; i < size; i += 4) {
+ if (i+4 > size) break;
+ uint8_t test[4] = { data[i+0], data[i+1], data[i+2], data[i+3], };
+ HAL_SPI_Transmit(&hspi1, test, 4, HAL_MAX_DELAY);
+ // HAL_Delay(100);
+ }
+ HAL_SPI_Transmit(&hspi1, (uint8_t[4]){ 0xff, 0xff, 0xff, 0xff }, 4, HAL_MAX_DELAY);
+ // reset SPI
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_RESET);
- HAL_SPI_Transmit_DMA(&hspi1, data, size);
}
-