dev

Binary file not shown.

@ -2,32 +2,34 @@
:1000100081400141814101428142014381430144C8
:100020008144814601478147970100209381817D6A
:10003000F32340F1B70200009382020063F47200E0
:100040006F006018170100201301C17BB702000088
:100040006F00001A170100201301C17BB7020000E6
:1000500093820240638603001E837D13E31F03FE29
:1000600033015140330401006F004000411106C6C6
:100070000008137101FF732540F197000000E7802D
:10008000201221C997000000E780401137050020A9
:1000900013050500B7050020938505006377B500BB
:10008000C01321C997000000E780E0123705002067
:1000900013050500B7050020938545006377B5007B
:1000A000232005001105E36DB5FE3705002013057B
:1000B0000500B70500009385851F3706002013064D
:1000B0000500B7050000938545213706002013068B
:1000C00006006378C500944114C111059105E36CE5
:1000D000C5FE97000000E780E00D97000000E78074
:1000D000C5FE97000000E780800F97000000E780D2
:1000E00060080000397106C016C21AC41EC62AC8AC
:1000F0002ECA32CC36CE3AD03ED233050100EF00C4
:100100000002824092422243B2434245D2456246B7
:10011000F2460257925713014102730020300A84BD
:10012000137101FFF325203463C7050022811703F3
:10013000000067006306139515000581B145637CD7
:10014000B5000A05B70500009385851C2E951C4156
:1001500099C3228182872281170300006700E3038D
:1001600037150240C1450CCD3715014093050005F8
:100170000CC1894537460F00130606244CC5B286CC
:1001800099C2FD16FDFE23260500B286E5DAFD16AE
:10019000FDFEEDB701A001A0228182800A841371C7
:1001A00001FF01C573005010F5BF05452281828013
:1001B0000A84137101FF370500001305450E731003
:0801C00055302281828001A06C
:1001C8009601000096010000000000009601000062
:1001D8009601000096010000000000009601000052
:1001E8009601000096010000000000009601000042
:10013000000067000308139515000581B145637C35
:10014000B5000A05B70500009385451E2E951C4194
:1001500099C32281828722811703000067008305EB
:100160003705002085452300B500371502400C4DAA
:1001700093E505010CCD371501400C4193F5F5F0E1
:1001800093E505050CC1B7450F009385052450453F
:100190001366260050C52E8619C27D167DFE504579
:1001A000759A50C52E8665D67D167DFECDB701A009
:1001B00001A0228182800A84137101FF01C57300AE
:1001C0005010F5BF0545228182800A84137101FF1A
:1001D000370500001305450E7310553022818280CB
:0201E00001A07C
:1001E400B0010000B001000000000000B0010000F8
:1001F400B0010000B001000000000000B0010000E8
:10020400B0010000B001000000000000B0010000D7
:00000001FF

@ -3,34 +3,31 @@
use panic_halt as _;
use riscv_rt::entry;
// use ch32v003_pac::{Peripherals};
use ch32v003_pac::{gpioc,rcc};
// entry!(main);
#[entry]
fn main() -> ! {
let RCC_APB2PCENR: *mut u32 = 0x4002_1018 as _;
let GPIOC_CFGLR: *mut u32 = 0x4001_1000 as _;
let GPIOC_OUTDR: *mut u32 = 0x4001_100C as _;
unsafe {
RCC_APB2PCENR.write_volatile(0b1_0000);
// Write 0b0001 to pin 1 configuration
GPIOC_CFGLR.write_volatile(0b0101_0000);
let p = unsafe { ch32v003_pac::Peripherals::steal()};
// Enable GPIOC bank
p.RCC.apb2pcenr.modify(|_, w| w.iopcen().set_bit());
// Configure GPIOC pin 1
p.GPIOC.cfglr.modify(|_, w| {
w.cnf1().variant(0b01) // Open-Drain
.mode1().variant(0b01) // Output, 10Mhz
});
loop {
// Set pin 1 to high
GPIOC_OUTDR.write_volatile(0b1_0);
for _ in 0..1_000_000 {
core::hint::black_box(()); // Do nothing, but keep the loop
}
// Set pin 1 to low
GPIOC_OUTDR.write_volatile(0b0_0);
for _ in 0..1_000_000 {
core::hint::black_box(()); // Do nothing, but keep the loop
}
// Turn pin 1 on
p.GPIOC.outdr.modify(|_, w| w.odr1().set_bit());
for _ in 0..1_000_000 {
core::hint::black_box(());
}
}
// Turn pin 1 off
p.GPIOC.outdr.modify(|_, w| w.odr1().clear_bit());
for _ in 0..1_000_000 {
core::hint::black_box(());
}
}
}

Loading…
Cancel
Save