OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
ClockedSerial.h
1/********************************************************************
2* Open Source Cartridge Reader *
3********************************************************************/
4#ifndef CLOCKEDSERIAL_H_
5#define CLOCKEDSERIAL_H_
6#pragma once
7
8# include "arch/avr/syslibinc.h"
9
10# if defined(OSCR_ARCH_AVR)
11
12# include <HardwareSerial.h>
13# include <HardwareSerial_private.h>
14
33class DynamicClockSerial : public HardwareSerial
34{
35 using HardwareSerial::HardwareSerial;
36
37public:
38 // Various functions to allow parameter omission and automatic handling.
39 void begin(uint32_t baud);
40 void begin(uint32_t baud, uint8_t config);
41 void begin(uint32_t baud, uint32_t sclock);
42 void begin(uint32_t baud, uint8_t config, uint32_t sclock);
43
44 void clockSkew(uint32_t sclock);
45 void clockSkewAtomic(uint32_t sclock);
46
47protected:
48 uint32_t clockSpeed = 0;
49 uint32_t baudRate;
50};
51
52extern DynamicClockSerial ClockedSerial;
53
54# endif /* OSCR_ARCH_AVR */
55
56#endif /* CLOCKEDSERIAL_H_ */