bet
This commit is contained in:
6
.vscode/settings.json
vendored
6
.vscode/settings.json
vendored
@@ -12,5 +12,9 @@
|
||||
"buildTarget" : {
|
||||
"visibility": "hidden"
|
||||
},
|
||||
},
|
||||
},
|
||||
"files.associations": {
|
||||
"stdlib.h": "c",
|
||||
"pio.h": "c"
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
19
picovga.c
19
picovga.c
@@ -6,14 +6,27 @@
|
||||
// "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
46
vga.h
Normal 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
|
||||
};
|
||||
Reference in New Issue
Block a user