From 2ff87878a83b02ee86901a3d152dd46ad234b7df Mon Sep 17 00:00:00 2001 From: Matt Jenkins Date: Wed, 3 Sep 2025 23:28:12 +0100 Subject: [PATCH] Reversed bit ordering to make more sense --- firmware/Test/Test.ino | 9 +++++---- firmware/Test/datastream.pio | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/firmware/Test/Test.ino b/firmware/Test/Test.ino index 0fd20bf..93bcc7e 100644 --- a/firmware/Test/Test.ino +++ b/firmware/Test/Test.ino @@ -89,12 +89,12 @@ uint16_t mfm_encode_bit(uint8_t b) { if (b == 0x80) { last_bit = 1; - return 0b1000000000000000; + return 0b01; } if (last_bit == 0) { - return 0b0100000000000000; + return 0b10; } else { last_bit = 0; return 0b00; @@ -109,7 +109,7 @@ uint16_t mfm_encode(uint8_t b) { //Serial.println(b, HEX); for (int i = 0; i < 8; i++) { - out >>= 2; + out <<= 2; //Serial.println(b, BIN); out |= mfm_encode_bit(b & 0x80); b <<= 1; @@ -155,7 +155,8 @@ void loop() { header_crc = 0xFFFF; header_crc = crc16(0xA1, header_crc); uint16_t sync = mfm_encode(0xA1); - sync &= 0b1111101111111111; + //sync &= 0b1111101111111111; + sync &= 0b1111111111011111; pio->txf[sm] = sync; csend(0xFE); diff --git a/firmware/Test/datastream.pio b/firmware/Test/datastream.pio index f48c6fb..c8ba6b8 100644 --- a/firmware/Test/datastream.pio +++ b/firmware/Test/datastream.pio @@ -7,6 +7,7 @@ public start: .wrap_target PULL noblock + OUT NULL, 16 SET Y,6 loop: @@ -19,7 +20,7 @@ loop: OUT PINS,1 [14] SET PINS,0 [14] OUT PINS,1 [14] - SET PINS,0 [12] + SET PINS,0 [11] .wrap @@ -30,6 +31,8 @@ static inline void datastream_program_init(PIO pio, uint sm, uint offset) { pio_gpio_init(pio, 12); pio_sm_set_consecutive_pindirs(pio, sm, 12, 1, true); pio_sm_config c = datastream_program_get_default_config(offset); + sm_config_set_out_shift(&c, false, false, 0); + sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX); sm_config_set_clkdiv(&c, 1.0); sm_config_set_out_pin_base(&c, 12); sm_config_set_out_pin_count(&c, 1);