This commit is contained in:
Benjamin Kyd
2021-06-22 20:26:47 +01:00
parent f9f43874a4
commit 0ad81a999d
4 changed files with 81 additions and 15 deletions

View File

@@ -13,4 +13,8 @@
"visibility": "hidden"
},
},
"files.associations": {
"stdlib.h": "c",
"pio.h": "c"
},
}

View File

@@ -1,5 +1,3 @@
# Generated Cmake Pico project file
cmake_minimum_required(VERSION 3.13)
set(CMAKE_C_STANDARD 11)
@@ -12,23 +10,28 @@ set(PICO_SDK_PATH "/home/ben/pico/pico-sdk")
# Pull in Raspberry Pi Pico SDK (must be before project)
include(pico_sdk_import.cmake)
project(PicoVGA C CXX ASM)
project(pico_vga C CXX ASM)
# Initialise the Raspberry Pi Pico SDK
pico_sdk_init()
# Add executable. Default name is the project name, version 0.1
add_executable(pico_vga)
add_executable(PicoVGA PicoVGA.c )
pico_set_program_name(pico_vga "pico_vga")
pico_set_program_version(pico_vga "0.1")
pico_set_program_name(PicoVGA "PicoVGA")
pico_set_program_version(PicoVGA "0.1")
pico_enable_stdio_uart(pico_vga 1)
pico_enable_stdio_usb(pico_vga 1)
pico_enable_stdio_uart(PicoVGA 1)
pico_enable_stdio_usb(PicoVGA 1)
pico_generate_pio_header(pico_vga ${CMAKE_CURRENT_LIST_DIR}/video.pio)
target_sources(pico_vga PRIVATE picovga.c)
# Add the standard library to the build
target_link_libraries(PicoVGA pico_stdlib)
target_link_libraries(pico_vga
pico_stdlib
hardware_pio
)
pico_add_extra_outputs(PicoVGA)
pico_add_extra_outputs(pico_vga)

View File

@@ -6,13 +6,26 @@
// "assembled program"
#include "video.pio.h"
const uint OUTPIN = 1;
#include "vga.h"
int main()
{
PIO pio = pio0;
uint prog = pio_add_program(pio, &video_program);
uint sm = pio_claim_unused_sm(pio, 1);
video_program_init(pio, sm, progoffset, PICO_DEFAULT_LED_PIN);
while (true) {
// Blink
pio_sm_put_blocking(pio, sm, 1);
sleep_ms(500);
// Blonk
pio_sm_put_blocking(pio, sm, 0);
sleep_ms(500);
}
return 0;

46
vga.h Normal file
View File

@@ -0,0 +1,46 @@
#include "pico/types.h"
typedef struct scanvideo_timing {
uint32_t clock_freq;
uint16_t h_active;
uint16_t v_active;
uint16_t h_front_porch;
uint16_t h_pulse;
uint16_t h_total;
uint8_t h_sync_polarity;
uint16_t v_front_porch;
uint16_t v_pulse;
uint16_t v_total;
uint8_t v_sync_polarity;
uint8_t enable_clock;
uint8_t clock_polarity;
uint8_t enable_den;
} scanvideo_timing_t;
const scanvideo_timing_t vga_timing_800x600_60 =
{
.clock_freq = 38400000,
.h_active = 800,
.v_active = 600,
.h_front_porch = 4 * 8,
.h_pulse = 10 * 8,
.h_total = 128 * 8,
.h_sync_polarity = 0,
.v_front_porch = 1,
.v_pulse = 3,
.v_total = 625,
.v_sync_polarity = 0,
.enable_clock = 0,
.clock_polarity = 0,
.enable_den = 0
};