File tree Expand file tree Collapse file tree 14 files changed +68
-18
lines changed Expand file tree Collapse file tree 14 files changed +68
-18
lines changed Original file line number Diff line number Diff line change @@ -97,7 +97,7 @@ func (i2c *I2C) stop() {
9797}
9898
9999// writeByte writes a single byte to the I2C bus. 
100- func  (i2c  * I2C ) writeByte (data  byte ) {
100+ func  (i2c  * I2C ) writeByte (data  byte ) error   {
101101	// Write data to register. 
102102	avr .TWDR .Set (data )
103103
@@ -107,6 +107,7 @@ func (i2c *I2C) writeByte(data byte) {
107107	// Wait till data is transmitted. 
108108	for  ! avr .TWCR .HasBits (avr .TWCR_TWINT ) {
109109	}
110+ 	return  nil 
110111}
111112
112113// readByte reads a single byte from the I2C bus. 
@@ -190,14 +191,16 @@ func (uart *UART) handleInterrupt(intr interrupt.Interrupt) {
190191}
191192
192193// WriteByte writes a byte of data to the UART. 
193- func  (uart  * UART ) WriteByte (c  byte ) error  {
194+ func  (uart  * UART ) writeByte (c  byte ) error  {
194195	// Wait until UART buffer is not busy. 
195196	for  ! uart .statusRegA .HasBits (avr .UCSR0A_UDRE0 ) {
196197	}
197198	uart .dataReg .Set (c ) // send char 
198199	return  nil 
199200}
200201
202+ func  (uart  * UART ) flush () {}
203+ 
201204// SPIConfig is used to store config info for SPI. 
202205type  SPIConfig  struct  {
203206	Frequency  uint32 
Original file line number Diff line number Diff line change @@ -626,14 +626,16 @@ func (uart *UART) SetBaudRate(br uint32) {
626626}
627627
628628// WriteByte writes a byte of data to the UART. 
629- func  (uart  * UART ) WriteByte (c  byte ) error  {
629+ func  (uart  * UART ) writeByte (c  byte ) error  {
630630	// wait until ready to receive 
631631	for  ! uart .Bus .INTFLAG .HasBits (sam .SERCOM_USART_INTFLAG_DRE ) {
632632	}
633633	uart .Bus .DATA .Set (uint16 (c ))
634634	return  nil 
635635}
636636
637+ func  (uart  * UART ) flush () {}
638+ 
637639// handleInterrupt should be called from the appropriate interrupt handler for 
638640// this UART instance. 
639641func  (uart  * UART ) handleInterrupt (interrupt.Interrupt ) {
Original file line number Diff line number Diff line change @@ -1114,14 +1114,16 @@ func (uart *UART) SetBaudRate(br uint32) {
11141114}
11151115
11161116// WriteByte writes a byte of data to the UART. 
1117- func  (uart  * UART ) WriteByte (c  byte ) error  {
1117+ func  (uart  * UART ) writeByte (c  byte ) error  {
11181118	// wait until ready to receive 
11191119	for  ! uart .Bus .INTFLAG .HasBits (sam .SERCOM_USART_INT_INTFLAG_DRE ) {
11201120	}
11211121	uart .Bus .DATA .Set (uint32 (c ))
11221122	return  nil 
11231123}
11241124
1125+ func  (uart  * UART ) flush () {}
1126+ 
11251127func  (uart  * UART ) handleInterrupt (interrupt.Interrupt ) {
11261128	// should reset IRQ 
11271129	uart .Receive (byte ((uart .Bus .DATA .Get () &  0xFF )))
Original file line number Diff line number Diff line change @@ -314,7 +314,7 @@ func (uart *UART) Configure(config UARTConfig) {
314314	uart .Bus .CLKDIV .Set (peripheralClock  /  config .BaudRate )
315315}
316316
317- func  (uart  * UART ) WriteByte (b  byte ) error  {
317+ func  (uart  * UART ) writeByte (b  byte ) error  {
318318	for  (uart .Bus .STATUS .Get ()>> 16 )& 0xff  >=  128  {
319319		// Read UART_TXFIFO_CNT from the status register, which indicates how 
320320		// many bytes there are in the transmit buffer. Wait until there are 
@@ -324,6 +324,8 @@ func (uart *UART) WriteByte(b byte) error {
324324	return  nil 
325325}
326326
327+ func  (uart  * UART ) flush () {}
328+ 
327329// Serial Peripheral Interface on the ESP32. 
328330type  SPI  struct  {
329331	Bus  * esp.SPI_Type 
Original file line number Diff line number Diff line change @@ -493,7 +493,7 @@ func (uart *UART) enableReceiver() {
493493	uart .Bus .SetINT_ENA_RXFIFO_OVF_INT_ENA (1 )
494494}
495495
496- func  (uart  * UART ) WriteByte (b  byte ) error  {
496+ func  (uart  * UART ) writeByte (b  byte ) error  {
497497	for  (uart .Bus .STATUS .Get ()& esp .UART_STATUS_TXFIFO_CNT_Msk )>> esp .UART_STATUS_TXFIFO_CNT_Pos  >=  128  {
498498		// Read UART_TXFIFO_CNT from the status register, which indicates how 
499499		// many bytes there are in the transmit buffer. Wait until there are 
@@ -502,3 +502,5 @@ func (uart *UART) WriteByte(b byte) error {
502502	uart .Bus .FIFO .Set (uint32 (b ))
503503	return  nil 
504504}
505+ 
506+ func  (uart  * UART ) flush () {}
Original file line number Diff line number Diff line change @@ -181,12 +181,14 @@ func (uart *UART) Configure(config UARTConfig) {
181181	esp .UART0 .UART_CLKDIV .Set (CPUFrequency () /  config .BaudRate )
182182}
183183
184- // WriteByte  writes a single byte to the output buffer. Note that the hardware 
184+ // writeByte  writes a single byte to the output buffer. Note that the hardware 
185185// includes a buffer of 128 bytes which will be used first. 
186- func  (uart  * UART ) WriteByte (c  byte ) error  {
186+ func  (uart  * UART ) writeByte (c  byte ) error  {
187187	for  (esp .UART0 .UART_STATUS .Get ()>> 16 )& 0xff  >=  128  {
188188		// Wait until the TX buffer has room. 
189189	}
190190	esp .UART0 .UART_FIFO .Set (uint32 (c ))
191191	return  nil 
192192}
193+ 
194+ func  (uart  * UART ) flush () {}
Original file line number Diff line number Diff line change @@ -111,13 +111,16 @@ func (uart *UART) handleInterrupt(interrupt.Interrupt) {
111111	uart .Receive (c )
112112}
113113
114- func  (uart  * UART ) WriteByte (c  byte ) {
114+ func  (uart  * UART ) writeByte (c  byte )  error  {
115115	for  sifive .UART0 .TXDATA .Get ()& sifive .UART_TXDATA_FULL  !=  0  {
116116	}
117117
118118	sifive .UART0 .TXDATA .Set (uint32 (c ))
119+ 	return  nil 
119120}
120121
122+ func  (uart  * UART ) flush () {}
123+ 
121124// SPI on the FE310. The normal SPI0 is actually a quad-SPI meant for flash, so it is best 
122125// to use SPI1 or SPI2 port for most applications. 
123126type  SPI  struct  {
Original file line number Diff line number Diff line change @@ -392,13 +392,16 @@ func (uart *UART) handleInterrupt(interrupt.Interrupt) {
392392	uart .Receive (c )
393393}
394394
395- func  (uart  * UART ) WriteByte (c  byte ) {
395+ func  (uart  * UART ) writeByte (c  byte )  error  {
396396	for  uart .Bus .TXDATA .Get ()& kendryte .UARTHS_TXDATA_FULL  !=  0  {
397397	}
398398
399399	uart .Bus .TXDATA .Set (uint32 (c ))
400+ 	return  nil 
400401}
401402
403+ func  (uart  * UART ) flush () {}
404+ 
402405type  SPI  struct  {
403406	Bus  * kendryte.SPI_Type 
404407}
Original file line number Diff line number Diff line change @@ -173,14 +173,16 @@ func (uart *UART) Sync() error {
173173}
174174
175175// WriteByte writes a single byte of data to the UART interface. 
176- func  (uart  * UART ) WriteByte (c  byte ) error  {
176+ func  (uart  * UART ) writeByte (c  byte ) error  {
177177	uart .startTransmitting ()
178178	for  ! uart .txBuffer .Put (c ) {
179179	}
180180	uart .Bus .CTRL .SetBits (nxp .LPUART_CTRL_TIE )
181181	return  nil 
182182}
183183
184+ func  (uart  * UART ) flush () {}
185+ 
184186// getBaudRateDivisor finds the greatest over-sampling factor (4..32) and 
185187// corresponding baud rate divisor (1..8191) that best partition a given baud 
186188// rate into equal intervals. 
Original file line number Diff line number Diff line change @@ -186,14 +186,16 @@ func (uart *UART) SetBaudRate(br uint32) {
186186}
187187
188188// WriteByte writes a byte of data to the UART. 
189- func  (uart  * UART ) WriteByte (c  byte ) error  {
189+ func  (uart  * UART ) writeByte (c  byte ) error  {
190190	nrf .UART0 .EVENTS_TXDRDY .Set (0 )
191191	nrf .UART0 .TXD .Set (uint32 (c ))
192192	for  nrf .UART0 .EVENTS_TXDRDY .Get () ==  0  {
193193	}
194194	return  nil 
195195}
196196
197+ func  (uart  * UART ) flush () {}
198+ 
197199func  (uart  * UART ) handleInterrupt (interrupt.Interrupt ) {
198200	if  nrf .UART0 .EVENTS_RXDRDY .Get () !=  0  {
199201		uart .Receive (byte (nrf .UART0 .RXD .Get ()))
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments