Library to use my Photo MOS Relays Circuit having 16 or less channels.
Fork of PMRC4ch by
Diff: PMRC16ch.cpp
- Revision:
- 42:a827fe9166b5
- Parent:
- 21:fa067e2a30f2
- Child:
- 43:03e875137433
--- a/PMRC16ch.cpp Wed Nov 07 18:49:31 2018 +0000 +++ b/PMRC16ch.cpp Tue Nov 20 20:54:33 2018 +0000 @@ -47,7 +47,7 @@ { init(); } -//------------------------------------------------------------------------------ +// ---------------------------------------------------------------------------- void PMRC16ch::init() { m_CLR = 1; @@ -77,7 +77,7 @@ m_PMRC_state = ALLHiZ; m_pos_stim = 0; } -//------------------------------------------------------------------------------ +// ---------------------------------------------------------------------------- void PMRC16ch::setTwin(char arg_stim_ch, char arg_ref_ch) { m_PMRC_mode = TWIN_ELECTRODES; @@ -87,6 +87,17 @@ m_pos_stim = arg_stim_ch; } +void PMRC16ch::setTrio(char arg_stim_ch, char arg_ref_ch1, char arg_ref_ch2) +{ + m_PMRC_mode = TWIN_ELECTRODES; + m_PMRC_state = m_statearray[arg_stim_ch] + + (m_statearray[arg_ref_ch1] >> 1 + + (m_statearray[arg_ref_ch2] >> 1); + setBits(m_PMRC_state); + upload(); + m_pos_stim = arg_stim_ch; +} + void PMRC16ch::setOvsO(char arg_ch) { int8_t num_of_shift; @@ -107,7 +118,7 @@ m_pos_stim = arg_ch; } -//------------------------------------------------------------------------------ +// ---------------------------------------------------------------------------- void PMRC16ch::sweep() { @@ -146,6 +157,10 @@ void PMRC16ch::setBits(const uint32_t arg_bits) { + /* arg_bits: 0b xx xx xx xx ... xx xx xx + * ch1 <- ->ch[m_num_ch] + */ + uint8_t tmp_bit[2]; //reset shiftresister m_CLR = 0; @@ -169,7 +184,7 @@ } } } -//------------------------------------------------------------------------------ +// ---------------------------------------------------------------------------- void PMRC16ch::update() { //Shift-resister Clock update