Loading include/arch/msp430fr5969lp/driver/dmx.h→include/arch/msp430fr5969lp/driver/dmx1.h +6 −5 Original line number Diff line number Diff line Loading @@ -4,17 +4,18 @@ * SPDX-License-Identifier: BSD-2-Clause */ class DMX { class DMX1 { private: DMX(const DMX ©); DMX1(const DMX1 ©); public: unsigned char frames[16]; static unsigned char const num_frames = 32; unsigned char frames[num_frames]; DMX() {} DMX1() {} void setup(); void write(); }; extern DMX dmx; extern DMX1 dmx1; include/arch/msp430fr5969lp/driver/stdin.h +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ class StandardInput { private: StandardInput(const StandardInput ©); static unsigned char const bufsize = 16; static unsigned char const bufsize = 32; char buffer[bufsize]; volatile unsigned char write_pos; unsigned char read_pos; Loading src/arch/msp430fr5969lp/Kconfig +8 −8 Original line number Diff line number Diff line Loading @@ -9,20 +9,20 @@ config arch_msp430fr5969lp_driver_counter bool "Cycle Counter" select meta_driver_counter config arch_msp430fr5969lp_driver_dmx bool "DMX" config arch_msp430fr5969lp_driver_dmx1 bool "DMX Output on eUSCI_A1 / P2.5" depends on !meta_driver_stdout1 select meta_driver_dmx select meta_driver_dmx1 config arch_msp430fr5969lp_driver_i2c bool "I2C on eUSCI_B0" bool "I²C on eUSCI_B0 / P1.[67]" help SDA: P1.6 SCL: P1.7 select meta_driver_hardware_i2c select meta_driver_i2c ## broken #config arch_msp430fr5969lp_driver_spi_a1 #bool "SPI on eUSCI_A1" #select meta_driver_spi config arch_msp430fr5969lp_driver_spi bool "SPI on eUSCI_B0" select meta_driver_spi Loading src/arch/msp430fr5969lp/driver/dmx.cc→src/arch/msp430fr5969lp/driver/dmx1.cc +6 −10 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ */ #include <msp430.h> #include "arch.h" #include "driver/dmx.h" #include "driver/dmx1.h" #include "driver/gpio.h" /* Loading @@ -16,7 +16,7 @@ * Set UCBRS0 according to table 21-4 */ void DMX::setup() void DMX1::setup() { UCA1CTLW0 |= UCSWRST; #if F_CPU == 16000000UL Loading @@ -38,7 +38,7 @@ void DMX::setup() UCA1CTLW0 &= ~UCSWRST; } void DMX::write() void DMX1::write() { // Disable UART for reset and mark signals UCA1CTLW0 |= UCSWRST; Loading @@ -49,18 +49,14 @@ void DMX::write() arch.delay_us(8); // mark P2SEL1 |= BIT5; UCA1CTLW0 &= ~UCSWRST; // causes line to go high for (unsigned char i = 0; i < 16; i++) { for (unsigned short i = 0; i < num_frames; i++) { while (!(UCA1IFG & UCTXIFG)); UCA1TXBUF = frames[i]; } for (unsigned char i = 0; i < 241; i++) { while (!(UCA1IFG & UCTXIFG)); UCA1TXBUF = 0; } for (unsigned char i = 0; i < 255; i++) { for (unsigned short i = 0; i < 258 - num_frames; i++) { while (!(UCA1IFG & UCTXIFG)); UCA1TXBUF = 0; } } DMX dmx; DMX1 dmx1; src/arch/msp430fr5969lp/driver/stdin.cc +4 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,10 @@ void StandardInput::setup() { UCA0CTLW0 |= UCSWRST; P2SEL0 &= ~BIT1; P2SEL1 |= BIT1; UCA0CTLW0 &= ~UCSWRST; UCA0IE |= UCRXIE; } Loading Loading
include/arch/msp430fr5969lp/driver/dmx.h→include/arch/msp430fr5969lp/driver/dmx1.h +6 −5 Original line number Diff line number Diff line Loading @@ -4,17 +4,18 @@ * SPDX-License-Identifier: BSD-2-Clause */ class DMX { class DMX1 { private: DMX(const DMX ©); DMX1(const DMX1 ©); public: unsigned char frames[16]; static unsigned char const num_frames = 32; unsigned char frames[num_frames]; DMX() {} DMX1() {} void setup(); void write(); }; extern DMX dmx; extern DMX1 dmx1;
include/arch/msp430fr5969lp/driver/stdin.h +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ class StandardInput { private: StandardInput(const StandardInput ©); static unsigned char const bufsize = 16; static unsigned char const bufsize = 32; char buffer[bufsize]; volatile unsigned char write_pos; unsigned char read_pos; Loading
src/arch/msp430fr5969lp/Kconfig +8 −8 Original line number Diff line number Diff line Loading @@ -9,20 +9,20 @@ config arch_msp430fr5969lp_driver_counter bool "Cycle Counter" select meta_driver_counter config arch_msp430fr5969lp_driver_dmx bool "DMX" config arch_msp430fr5969lp_driver_dmx1 bool "DMX Output on eUSCI_A1 / P2.5" depends on !meta_driver_stdout1 select meta_driver_dmx select meta_driver_dmx1 config arch_msp430fr5969lp_driver_i2c bool "I2C on eUSCI_B0" bool "I²C on eUSCI_B0 / P1.[67]" help SDA: P1.6 SCL: P1.7 select meta_driver_hardware_i2c select meta_driver_i2c ## broken #config arch_msp430fr5969lp_driver_spi_a1 #bool "SPI on eUSCI_A1" #select meta_driver_spi config arch_msp430fr5969lp_driver_spi bool "SPI on eUSCI_B0" select meta_driver_spi Loading
src/arch/msp430fr5969lp/driver/dmx.cc→src/arch/msp430fr5969lp/driver/dmx1.cc +6 −10 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ */ #include <msp430.h> #include "arch.h" #include "driver/dmx.h" #include "driver/dmx1.h" #include "driver/gpio.h" /* Loading @@ -16,7 +16,7 @@ * Set UCBRS0 according to table 21-4 */ void DMX::setup() void DMX1::setup() { UCA1CTLW0 |= UCSWRST; #if F_CPU == 16000000UL Loading @@ -38,7 +38,7 @@ void DMX::setup() UCA1CTLW0 &= ~UCSWRST; } void DMX::write() void DMX1::write() { // Disable UART for reset and mark signals UCA1CTLW0 |= UCSWRST; Loading @@ -49,18 +49,14 @@ void DMX::write() arch.delay_us(8); // mark P2SEL1 |= BIT5; UCA1CTLW0 &= ~UCSWRST; // causes line to go high for (unsigned char i = 0; i < 16; i++) { for (unsigned short i = 0; i < num_frames; i++) { while (!(UCA1IFG & UCTXIFG)); UCA1TXBUF = frames[i]; } for (unsigned char i = 0; i < 241; i++) { while (!(UCA1IFG & UCTXIFG)); UCA1TXBUF = 0; } for (unsigned char i = 0; i < 255; i++) { for (unsigned short i = 0; i < 258 - num_frames; i++) { while (!(UCA1IFG & UCTXIFG)); UCA1TXBUF = 0; } } DMX dmx; DMX1 dmx1;
src/arch/msp430fr5969lp/driver/stdin.cc +4 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,10 @@ void StandardInput::setup() { UCA0CTLW0 |= UCSWRST; P2SEL0 &= ~BIT1; P2SEL1 |= BIT1; UCA0CTLW0 &= ~UCSWRST; UCA0IE |= UCRXIE; } Loading