~ruther/vhdl-i2c

162bd41ba3de8b24ce8746c8cff37d68445aca88 — Rutherther 1 year, 3 months ago b9b3fce
tests(mcu): count correctly, excluding the address
2 files changed, 9 insertions(+), 13 deletions(-)

M mcu_tests/slave_counter/src/main.rs
M mcu_tests/slave_regs/src/main.rs
M mcu_tests/slave_counter/src/main.rs => mcu_tests/slave_counter/src/main.rs +1 -4
@@ 39,10 39,7 @@ fn main() -> ! {
    loop {
        let res = i2c.read(ADDRESS, &mut buffer);
        if res.is_ok() {
            for data in buffer {
                hprintln!("Got: {data}");
                dbg!(data);
            }
            dbg!(buffer);
        }
        else {
            hprintln!("Got an error when trying to read :(");

M mcu_tests/slave_regs/src/main.rs => mcu_tests/slave_regs/src/main.rs +8 -9
@@ 34,31 34,30 @@ fn main() -> ! {

    let mut delay = Delay::new(cp.SYST, &clocks);

    let mut buffer: [u8; 5] = [0; 5];
    let mut buffer: [u8; 20] = [0; 20];
    let mut count: u8 = 0;
    const ADDRESS: u8 = 0b1110101;
    fn write_on(buffer: &mut [u8], address: u8, count: &mut u8) {
        for data in buffer.iter_mut() {
        for data in buffer[1..=5].iter_mut() {
            *data = *count;
            *count = (*count).wrapping_add(1);
        }
        buffer[0] = address;
    }

    let mut rx_buffer: [u8; 20] = [0; 20];
    loop {
        write_on(&mut buffer, 0, &mut count);
        if i2c.write(ADDRESS, &mut buffer).is_err() {
        write_on(&mut buffer[0..=5], 0, &mut count);
        if i2c.write(ADDRESS, &mut buffer[0..=5]).is_err() {
            hprintln!("There was an error during write");
        }
        write_on(&mut buffer, 10, &mut count);
        if i2c.write(ADDRESS, &mut buffer).is_err() {
        write_on(&mut buffer[0..=5], 10, &mut count);
        if i2c.write(ADDRESS, &mut buffer[0..=5]).is_err() {
            hprintln!("There was an error during write");
        }

        let res = i2c.write_read(ADDRESS, &[0], &mut rx_buffer);
        let res = i2c.write_read(ADDRESS, &[0], &mut buffer);
        if res.is_ok() {
            dbg!(rx_buffer);
            dbg!(buffer);
        }
        else {
            hprintln!("Got an error when trying to read :(");

Do not follow this link