a.binder il y a 5 ans
Parent
commit
d8e0d7bcf6

+ 5 - 2
SE/stuff/P5_Automation_can-dev-res/P5_Automation_can-dev-res.ino

@@ -82,7 +82,7 @@
 
 //#define DEBUG_I2C_driver_Adafruit_PWMServoDriver
 
-#define HAS__PCINT_setup //to allow interrupts
+//#define HAS__PCINT_setup //to allow interrupts
 
 #define HAS__jm_Scheduler //to allow planned actions blink etc
 
@@ -371,7 +371,10 @@ void setup() {
 
  
 //todo PCINT service
-
+#ifdef DISABLE_LOOP || DEBUG
+         Serial.println("#375 will include ___main/__main_I2C_setup.h");
+#endif
+#include "___main/__main_I2C_setup.h"
 
 
 #if defined(HAS__PCINT_setup)

+ 11 - 4
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_func.h

@@ -32,9 +32,11 @@
     int i;
     //int *ptrNumber;
     for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
-        if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0 )) {
+       // if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0 )) {
+       if(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A == ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_INIT_A ) {
             //Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A = I2C_ADDRESS_A;
             //Adafruit_PWMServoDriver _class_cntr = Adafruit_PWMServoDriver(I2C_ADDRESS_A) ;
+            Serial.print("#39 PWMServoDriver  init for  i["); Serial.print(i);  Serial.print("]  I2C_ADDRESS_A["); Serial.print(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A); Serial.println("]");
             Adafruit_PWMServoDriver_A[i].Adafruit_PWMServoDriver_V = Adafruit_PWMServoDriver(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A);
         }
     }
@@ -46,7 +48,8 @@
  int Adafruit_PWMServoDriver_begin_all(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A) {
   int i;
     for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
-        if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0)) {
+        //if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0)) {
+        if(Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A == ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETUP_A ) {
             Adafruit_PWMServoDriver_A[i].Adafruit_PWMServoDriver_V.begin();
              Serial.print("#577 setPWM  begin ["); Serial.print(i);  Serial.println("]");
             break;
@@ -62,11 +65,15 @@
     int i;
     //int *ptrNumber;
     for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
-        if(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0 || Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == I2C_ADDRESS_A) {
+        if( Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == I2C_ADDRESS_A and 
+            Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A == ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_INIT_A ) {
+            Serial.print("#577 init PWMServoDriver ERROR already initialized   I2C_ADDRESS_A ["); Serial.print(I2C_ADDRESS_A);  Serial.println("]");
+        } else if(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0 || Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == I2C_ADDRESS_A) {
+            Adafruit_PWMServoDriver_A[i].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A = ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_SETUP_A;
             Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A = I2C_ADDRESS_A;
             //Adafruit_PWMServoDriver _class_cntr = Adafruit_PWMServoDriver(I2C_ADDRESS_A) ;
             Adafruit_PWMServoDriver_A[i].Adafruit_PWMServoDriver_V = Adafruit_PWMServoDriver(I2C_ADDRESS_A);
-            Serial.print("#577 setPWM  init ["); Serial.print(i);  Serial.println("]");
+            Serial.print("#577 init PWMServoDriver    ["); Serial.print(i);  Serial.println("]");
             break;
         }
     }

+ 7 - 0
SE/stuff/P5_Automation_can-dev-res/_ROTTARY_SW/_ROTTARY_SW_func.h

@@ -1,4 +1,11 @@
 
+
+
+#ifndef defined(HAS_ROTTARY_SW)
+    #error Need to have HAS_ROTTARY_SW
+#endif
+
+
 #ifndef HAS__PCINT_setup
     #error Need to have HAS__PCINT_setup
 #endif

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res/___CONFIG/0x101/config_Active_ControllerID_0x101.h

@@ -1,11 +1,11 @@
 
 //there kleep config of this id device#define HAS_TFT_ILI9163C 
 // #define HAS_LCD1602 
-#define HAS_ROTTARY_SW
+//#define HAS_ROTTARY_SW
 #define HAS_TFT_ILI9163C
 #define HAS_I2C_driver_Adafruit_PWMServoDriver 
 #define DEBUG_I2C_driver_Adafruit_PWMServoDriver
-
+//#define HAS__PCINT_setup //to allow interrupts
 
 #define DEBUG 5 
 

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/___CONFIG/0x103/config_Active_ControllerID_0x103.h

@@ -2,6 +2,7 @@
 //there kleep config of this id device#define HAS_TFT_ILI9163C 
 // #define HAS_LCD1602 
 //#define HAS_ROTTARY_SW
+//#define HAS__PCINT_setup //to allow interrupts
 
 #define HAS_I2C_driver_Adafruit_PWMServoDriver 
 

+ 6 - 0
SE/stuff/P5_Automation_can-dev-res/___main/__main_I2C_setup.h

@@ -0,0 +1,6 @@
+
+
+
+ARDUINO_ARRAY_INDEX_TABLE_S__init(I2C_ARRAY_INDEX_TABLE_A,I2C_ARDUINO_ATTR_ARRAY_A,ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C);
+
+//ARDUINO_ARRAY_INDEX_TABLE_S__add_void(I2C_ARRAY_INDEX_TABLE_A,I2C_ARDUINO_ATTR_ARRAY_A,I2C_ADDRESS_0x40);

+ 6 - 4
SE/stuff/P5_Automation_can-dev-res/___main/__main_I2C_struc.h

@@ -29,9 +29,11 @@ typedef I2C_ARRAY_DRIVER_S I2C_ARRAY_DRIVER_T ;
 
 typedef struct ARDUINO_ATTR_ARRAY_S I2C_ARDUINO_ATTR_ARRAY_T;
 
-static ARDUINO_ARRAY_INDEX_T I2C_ARRAY_INDEX_A[ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C] = {} ; //TO KEEP INDEXES 
+static ARDUINO_ARRAY_INDEX_TABLE_T I2C_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C] = {} ; //TO KEEP INDEXES 
 
-static I2C_ARDUINO_ATTR_ARRAY_T  I2C_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
+static I2C_ARDUINO_ATTR_ARRAY_T  I2C_ARDUINO_ATTR_ARRAY_A = {} ;
+
+/*static I2C_ARDUINO_ATTR_ARRAY_T  I2C_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
         {    ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
              ARDUINO_ARRAY_INDEX_LAST_INIT ,
              ARDUINO_ARRAY_COUNT_T_INIT ,
@@ -41,12 +43,12 @@ static I2C_ARDUINO_ATTR_ARRAY_T  I2C_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARR
              ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT  
               }
     ;
-
+*/
 //struct ARDUINO_ARRAY_INDEX_T I2C_INDEX_DRIVER_T ; //DO NP INDEX GDIZE JEST ZAINCJALIZOWANY JAKIS HANDLER  Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A ...
  
 static  I2C_ARRAY_DRIVER_T  I2C_ARRAY_DRIVER_A[5]={} ; //
 
-
+//ARDUINO_ARRAY_INDEX_TABLE_S__add_void(I2C_ARRAY_INDEX_A,I2C_ARDUINO_ATTR_ARRAY_A,I2C_ADDRESS_0x40);
 
          /*
 void I2C_INDEX_DRIVER__add(I2C_INDEX_DRIVER_T*  I2C_INDEX_DRIVER_A, I2C_ARDUINO_ATTR_ARRAY_T  &I2C_ARDUINO_ATTR_ARRAY_A) {

+ 2 - 1
SE/stuff/P5_Automation_can-dev-res/___main/__main_struct.h

@@ -83,7 +83,8 @@ struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S {
 };
 
 struct ARDUINO_ARRAY_INDEX_TABLE_S { //to controll elements - like deletion etc
-   ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ;
+      //ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ;
+      int ARDUINO_ARRAY_INDEX_A ;
 };
 
 typedef ARDUINO_ARRAY_INDEX_TABLE_S ARDUINO_ARRAY_INDEX_TABLE_T;

+ 56 - 3
SE/stuff/P5_Automation_can-dev-res/___main/__main_struct_funct.h

@@ -55,24 +55,77 @@ void ARDUINO_ATTR_ARRAY_S__commit_added_element(
 
 
 
+void ARDUINO_ATTR_ARRAY_S__init(  //to init attr list table[1]
+    ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_ARRAY_A, 
+    ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A //current limit table
+    ) {
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ARRAY_INDEX_CURRENT_INIT ;
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A = ARDUINO_ARRAY_INDEX_LAST_INIT ;
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A = ARDUINO_ARRAY_COUNT_T_INIT ;
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LIMIT_A = ARDUINO_ARRAY_INDEX_LIMIT_A ; 
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A = ARDUINO_ARRAY_INDEX_NEXT_INIT ;
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_time_min_run_MIN_A = ARDUINO_ARRAY_time_min_run_MIN_INIT ;
+             ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_time_min_run_MIN_A = ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT ;  
+    }
+
+
+void ARDUINO_ARRAY_INDEX_TABLE_S__init( //to init table INDEX
+    ARDUINO_ARRAY_INDEX_TABLE_T* ARDUINO_ARRAY_INDEX_TABLE_A,
+    ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_ARRAY_A,
+    ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A //current limit table
+    ) {
+           ARDUINO_ATTR_ARRAY_S__init(ARDUINO_ATTR_ARRAY_A, ARDUINO_ARRAY_INDEX_LIMIT_A) ; 
+                ARDUINO_ARRAY_INDEX_CURRENT_T  ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A;
+               if(ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_CORRUPT) {         
+                    ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_CURRENT_A].ARDUINO_ARRAY_INDEX_A = ARDUINO_ARRAY_INDEX_CORRUPT;
+                    ARDUINO_ATTR_ARRAY_S__commit_added_element( ARDUINO_ATTR_ARRAY_A , ARDUINO_ARRAY_INDEX_CURRENT_A); //__STORAGE_ARRAY_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
+                    Serial.print("#83 ARDUINO_ARRAY_INDEX_TABLE_S__init  ARDUINO_ARRAY_INDEX_NEXT_A[");
+                     Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); Serial.println("]  [");
+
+
+                } else {
+                    Serial.println("#83 ERROR element should be corrupted ARDUINO_ARRAY_INDEX_TABLE_S__init");
+                }
+    }
+
 ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_TABLE_S__add( //ADD SOME INT ELEMENT OF ARDUINO_ARRAY_INDEX_A
     ARDUINO_ARRAY_INDEX_TABLE_T* ARDUINO_ARRAY_INDEX_TABLE_A,
     ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_ARRAY_A,
-    ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A 
+    int ARDUINO_ARRAY_INDEX_A //ARDUINO_ARRAY_INDEX_T 
     ) {
        ARDUINO_ARRAY_INDEX_CURRENT_T  ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A;
-               if(ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_CORRUPT) {
+               if(ARDUINO_ARRAY_INDEX_CURRENT_A == ARDUINO_ARRAY_INDEX_CORRUPT) {         
+                          
                     ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_CURRENT_A].ARDUINO_ARRAY_INDEX_A = ARDUINO_ARRAY_INDEX_CORRUPT;
                     ARDUINO_ATTR_ARRAY_S__commit_added_element( ARDUINO_ATTR_ARRAY_A , ARDUINO_ARRAY_INDEX_CURRENT_A); //__STORAGE_ARRAY_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
                 }
                 
     ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
+                            #ifdef DISABLE_LOOP || DEBUG
+                                     Serial.print("#8592 ARDUINO_ARRAY_INDEX_TABLE_S__add  ARDUINO_ARRAY_INDEX_A=[");
+                                     Serial.print(ARDUINO_ARRAY_INDEX_A); Serial.print("] ARDUINO_ARRAY_INDEX_CURRENT_A=[");
+                                     Serial.print(ARDUINO_ARRAY_INDEX_CURRENT_A); Serial.print("]  ..after commit ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A=[");
+                                     
+                            #endif
         ARDUINO_ARRAY_INDEX_TABLE_A[ARDUINO_ARRAY_INDEX_CURRENT_A].ARDUINO_ARRAY_INDEX_A = ARDUINO_ARRAY_INDEX_A;
             ARDUINO_ATTR_ARRAY_S__commit_added_element(ARDUINO_ATTR_ARRAY_A , ARDUINO_ARRAY_INDEX_CURRENT_A);
-                
+                 #ifdef DISABLE_LOOP || DEBUG
+                 Serial.print(ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A); Serial.println("]  [");
+                 #endif 
 }
 
 
+void ARDUINO_ARRAY_INDEX_TABLE_S__add_void(
+    ARDUINO_ARRAY_INDEX_TABLE_T* ARDUINO_ARRAY_INDEX_TABLE_A,
+    ARDUINO_ATTR_ARRAY_T &ARDUINO_ATTR_ARRAY_A,
+    int ARDUINO_ARRAY_INDEX_A 
+    ){
+    ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A = ARDUINO_ARRAY_INDEX_TABLE_S__add( //ADD SOME INT ELEMENT OF ARDUINO_ARRAY_INDEX_A
+              ARDUINO_ARRAY_INDEX_TABLE_A,
+              ARDUINO_ATTR_ARRAY_A,ARDUINO_ARRAY_INDEX_A 
+              );
+    
+    } 
 
 
 /*