Byggern
uart.h
1 #pragma once
2 
3 #include <avr/io.h>
4 #include <avr/interrupt.h>
5 
6 #include "../stream/stream.h"
7 
8 ISR(USART0_UDRE_vect);
9 
13 class UART : public Stream {
14 
15 private:
16 
20  UART();
21 
25  bool ongoing_transmission = false;
26 
30  inline void StartTransmission();
31 
35  friend void USART0_UDRE_vect();
36 
37 public:
38 
42  static UART& GetInstance(){
43  static UART instance;
44  return instance;
45  }
46 
52  void Write(uint8_t *string, uint16_t size);
53 
58  void Init(uint16_t baud_rate);
59 
63  UART(const UART&) = delete;
64 
68  void operator=(const UART&) = delete;
69 
70 };
static UART & GetInstance()
Definition: uart.h:42
This class is an interface for implementing a duplex FIFO stream.
Definition: stream.h:19
void Init(uint16_t baud_rate)
Definition: uart.cpp:17
void operator=(const UART &)=delete
friend void USART0_UDRE_vect()
Definition: uart.cpp:4
An interface for communicating through UART.
Definition: uart.h:13
void Write(uint8_t *string, uint16_t size)
Definition: uart.cpp:40
bool ongoing_transmission
Definition: uart.h:25
void StartTransmission()
Definition: uart.cpp:49
UART()
Definition: uart.cpp:36