delint
This commit is contained in:
parent
3f7da6e328
commit
c5dfaf0ee2
@ -1,4 +1,3 @@
|
|||||||
use core::mem::transmute;
|
|
||||||
use core::slice::{from_raw_parts, from_raw_parts_mut};
|
use core::slice::{from_raw_parts, from_raw_parts_mut};
|
||||||
use embedded_hal::digital::v2::{InputPin, OutputPin};
|
use embedded_hal::digital::v2::{InputPin, OutputPin};
|
||||||
|
|
||||||
@ -14,13 +13,13 @@ macro_rules! def_gpio {
|
|||||||
($PORT: tt, $PIN: tt, $idx: expr) => (
|
($PORT: tt, $PIN: tt, $idx: expr) => (
|
||||||
impl $PIN {
|
impl $PIN {
|
||||||
fn data(&self) -> &u32 {
|
fn data(&self) -> &u32 {
|
||||||
let gpio = unsafe { tm4c129x::$PORT::ptr() };
|
let gpio = tm4c129x::$PORT::ptr();
|
||||||
let data = unsafe { from_raw_parts(gpio as *const _ as *mut u32, 0x100) };
|
let data = unsafe { from_raw_parts(gpio as *const _ as *mut u32, 0x100) };
|
||||||
&data[(1 << $idx) as usize]
|
&data[(1 << $idx) as usize]
|
||||||
}
|
}
|
||||||
|
|
||||||
fn data_mut(&mut self) -> &mut u32 {
|
fn data_mut(&mut self) -> &mut u32 {
|
||||||
let gpio = unsafe { tm4c129x::$PORT::ptr() };
|
let gpio = tm4c129x::$PORT::ptr();
|
||||||
let data = unsafe { from_raw_parts_mut(gpio as *const _ as *mut u32, 0x100) };
|
let data = unsafe { from_raw_parts_mut(gpio as *const _ as *mut u32, 0x100) };
|
||||||
&mut data[(1 << $idx) as usize]
|
&mut data[(1 << $idx) as usize]
|
||||||
}
|
}
|
||||||
@ -73,9 +72,3 @@ pub struct PE4;
|
|||||||
def_gpio!(GPIO_PORTE_AHB, PE4, 4);
|
def_gpio!(GPIO_PORTE_AHB, PE4, 4);
|
||||||
pub struct PE5;
|
pub struct PE5;
|
||||||
def_gpio!(GPIO_PORTE_AHB, PE5, 5);
|
def_gpio!(GPIO_PORTE_AHB, PE5, 5);
|
||||||
|
|
||||||
/// Setting of GPIO pins is optimized by address masking
|
|
||||||
fn masked_data<'a>(data: *mut u32, bits: u8) -> &'a mut u32 {
|
|
||||||
let data = unsafe { from_raw_parts_mut(data, 0x400) };
|
|
||||||
&mut data[usize::from(bits)]
|
|
||||||
}
|
|
||||||
|
@ -6,11 +6,6 @@ pub mod softspi;
|
|||||||
pub mod delay;
|
pub mod delay;
|
||||||
|
|
||||||
|
|
||||||
const LED1: u8 = 0x10; // PK4
|
|
||||||
const LED2: u8 = 0x40; // PK6
|
|
||||||
|
|
||||||
|
|
||||||
pub const PWM_LOAD: u16 = (/*pwmclk*/120_000_000u32 / /*freq*/100_000) as u16;
|
|
||||||
const UART_DIV: u32 = (((/*sysclk*/120_000_000 * 8) / /*baud*/115200) + 1) / 2;
|
const UART_DIV: u32 = (((/*sysclk*/120_000_000 * 8) / /*baud*/115200) + 1) / 2;
|
||||||
|
|
||||||
pub fn init() {
|
pub fn init() {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
use embedded_hal::spi::FullDuplex;
|
use embedded_hal::spi::FullDuplex;
|
||||||
use embedded_hal::digital::v2::{InputPin, OutputPin};
|
use embedded_hal::digital::v2::{InputPin, OutputPin};
|
||||||
use embedded_hal::blocking::spi::Transfer;
|
use embedded_hal::blocking::spi::Transfer;
|
||||||
use embedded_hal::blocking::delay::DelayUs;
|
|
||||||
use nb::Error::WouldBlock;
|
use nb::Error::WouldBlock;
|
||||||
|
|
||||||
/// Bit-banged Mode3 SPI
|
/// Bit-banged Mode3 SPI
|
||||||
|
@ -84,9 +84,9 @@ macro_rules! create_socket {
|
|||||||
#[entry]
|
#[entry]
|
||||||
fn main() -> ! {
|
fn main() -> ! {
|
||||||
let mut stdout = hio::hstdout().unwrap();
|
let mut stdout = hio::hstdout().unwrap();
|
||||||
writeln!(stdout, "ionpak boot");
|
writeln!(stdout, "ionpak boot").unwrap();
|
||||||
board::init();
|
board::init();
|
||||||
writeln!(stdout, "board initialized");
|
writeln!(stdout, "board initialized").unwrap();
|
||||||
|
|
||||||
println!(r#"
|
println!(r#"
|
||||||
_ _
|
_ _
|
||||||
@ -120,7 +120,7 @@ fn main() -> ! {
|
|||||||
None =>
|
None =>
|
||||||
writeln!(stdout, "Cannot identify ADC!").unwrap(),
|
writeln!(stdout, "Cannot identify ADC!").unwrap(),
|
||||||
Some(id) if id & 0xFFF0 == 0x00D0 => {
|
Some(id) if id & 0xFFF0 == 0x00D0 => {
|
||||||
writeln!(stdout, "ADC id: {:04X}", id);
|
writeln!(stdout, "ADC id: {:04X}", id).unwrap();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Some(id) =>
|
Some(id) =>
|
||||||
@ -183,7 +183,7 @@ fn main() -> ! {
|
|||||||
.map(|channel| {
|
.map(|channel| {
|
||||||
adc.read_data()
|
adc.read_data()
|
||||||
.map(|new_data| {
|
.map(|new_data| {
|
||||||
writeln!(stdout, "adc data: {:?}", new_data);
|
writeln!(stdout, "adc data: {:?}", new_data).unwrap();
|
||||||
data = new_data;
|
data = new_data;
|
||||||
if channel == 0 {
|
if channel == 0 {
|
||||||
for p in socket_pending.iter_mut() {
|
for p in socket_pending.iter_mut() {
|
||||||
|
Loading…
Reference in New Issue
Block a user