Library to use my Photo MOS Relays Circuit having 16 or less channels.
Fork of PMRC4ch by
Revision 47:a097e670a983, committed 2020-10-21
- Comitter:
- aktk
- Date:
- Wed Oct 21 20:56:01 2020 +0000
- Parent:
- 44:20a890fe5f83
- Parent:
- 46:fe9918f73ec0
- Child:
- 48:daef4fb51d25
- Commit message:
- fixed bug of settwin() which happened when two channels were not changed but a pole was changed.
Changed in this revision
| PMRC16ch.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/PMRC16ch.cpp Tue Oct 29 02:43:14 2019 +0000
+++ b/PMRC16ch.cpp Wed Oct 21 20:56:01 2020 +0000
@@ -80,11 +80,8 @@
// ----------------------------------------------------------------------------
void PMRC16ch::setTwin(char arg_stim_ch, char arg_ref_ch)
{
- uint32_t l_state = m_PMRC_state;
+ m_PMRC_mode = TWIN_ELECTRODES;
m_PMRC_state = m_statearray[arg_stim_ch] | (m_statearray[arg_ref_ch] >> 1);
- if(l_state == m_PMRC_state) return;
-
- m_PMRC_mode = TWIN_ELECTRODES;
setBits(m_PMRC_state);
upload();
m_pos_stim = arg_stim_ch;
@@ -94,7 +91,7 @@
{
m_PMRC_mode = TWIN_ELECTRODES;
m_PMRC_state = m_statearray[arg_stim_ch]
- | (m_statearray[arg_ref_ch1] >> 1)
+ |(m_statearray[arg_ref_ch1] >> 1)
| (m_statearray[arg_ref_ch2] >> 1);
setBits(m_PMRC_state);
upload();
@@ -174,7 +171,7 @@
tmp_bit[0] = 0b01 & (arg_bits >> (2 * i));
tmp_bit[1] = 0b01 & (arg_bits >> (2 * i + 1));
// if the chan. is not HiZ meaning Hi or Lw
- if(tmp_bit[0] | tmp_bit[1] == 0b01) {
+ if(tmp_bit[0] + tmp_bit[1] == 1) {
m_SER = (tmp_bit[0] ^ m_PMRC_POL); //XOR Polarity
update();
m_SER = (tmp_bit[1] ^ m_PMRC_POL); //XOR Polarity
