OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
OSCR::Hardware::PinControl Class Reference

Public Member Functions

void reset (bool resetBanks=false, bool resetAllPins=true)
void usePullup (bool usePullup, bool resetBanks=false)
void addAddressBank (PinBank bank)
template<typename T, typename ... Ts>
OSCR::Util::enable_if_t<(OSCR::Util::is_same< T, Ts >::value &&...), void > addAddressBank (T bank, Ts ... banks)
void addDataBank (PinBank bank)
template<typename T, typename ... Ts>
OSCR::Util::enable_if_t<(OSCR::Util::is_same< T, Ts >::value &&...), void > addDataBank (T bank, Ts ... banks)
void setClockWritePin (PinBank bank, uint8_t pin)
void setClockReadPin (PinBank bank, uint8_t pin)
void setLatchPin (PinBank bank, uint8_t pin)
void waitLatch ()
void clockRead ()
void clockWrite ()
template<typename T>
void setAddress (T newAddress)
template<typename T>
readData ()
template<typename TD, typename TA>
TD readAddress (TA newAddress)
template<typename TD, typename TA>
void setPosition (TA newAddress)
template<typename TD>
TD readNext ()
template<typename TA>
TA getPosition ()
template<typename T>
void writeData (T outputData)
uint8_t readBank (PinBank bank)
volatile uint8_t & getDDR (PinBank bank)
volatile uint8_t & getPort (PinBank bank)
volatile uint8_t & getPin (PinBank bank)
void setBankDir (PinBank bank, PinDirection dir)
void setMode (DataMode mode)

Protected Attributes

BankSetaddress = new BankSet
BankSetdata = new BankSet
PinlatchPin = new Pin(PinDirection::kIn, false)
PinclockReadPin = new Pin(PinDirection::kOut, false)
PinclockWritePin = new Pin(PinDirection::kOut, false)
bool useLatchPin = false
uint16_t clockPeriodRead = 0
uint16_t clockPeriodWrite = 0
bool pullup = false
size_t lastAddress = 0

The documentation for this class was generated from the following file:
  • C:/Developer/Projects/OSCR/oscr-firmware/include/common/PinControl.h