Library to use my Photo MOS Relays Circuit having 16 or less channels.

Fork of PMRC4ch by Akifumi Takahashi

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