a.binder 5 lat temu
rodzic
commit
475132ab5a

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res/P5_Automation_can-dev-res.ino

@@ -79,6 +79,9 @@
 //#define HAS_TFT_ILI9163C 
 //#define HAS_LCD1602 
 //#define HAS_ROTTARY_SW
+
+//#define DEBUG_I2C_driver_Adafruit_PWMServoDriver
+
 #define HAS__PCINT_setup //to allow interrupts
 
 #define HAS__jm_Scheduler //to allow planned actions blink etc

+ 24 - 1
SE/stuff/P5_Automation_can-dev-res/_DRIVER_STATUS/_DRIVER_STATUS_struct.h

@@ -20,4 +20,27 @@ const ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T  ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_
   const ARDUINO_DRIVER_STATUS_T ARDUINO_DRIVER_INITIALIZED_BEGIN    = B00000100  ;
   const ARDUINO_DRIVER_STATUS_T ARDUINO_DRIVER_INITIALIZED_FREQ     = B00001000  ;
   
-*/
+*/
+
+
+
+struct ARDUINO_ARRAY_DRIVER_T {
+    ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A ;
+};
+
+struct ARDUINO_DRIVER_ATTR_ARRAY_S {
+    ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ;
+    ARDUINO_ARRAY_INDEX_LAST_T ARDUINO_ARRAY_INDEX_LAST_A ;
+    ARDUINO_ARRAY_COUNT_T ARDUINO_ARRAY_COUNT_A ;
+    ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A;
+    ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_A ;
+    ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_A ;
+    ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_A ;
+};
+
+
+
+
+
+//void ARDUINO_ARRAY_DRIVER__add(ARDUINO_ARRAY_DRIVER_T* ARDUINO_ARRAY_DRIVER_A, 
+ //   )

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_config.h

@@ -1,2 +1,3 @@
 //I2C_driver_Adafruit_PWMServoDriver
  
+//Adafruit_PWMServoDriver__add(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A);

+ 28 - 6
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_func.h

@@ -5,11 +5,33 @@
  // Adafruit_PWMServoDriver  Adafruit_PWMServoDriver_0X40 = Adafruit_PWMServoDriver(0x41);
   
   
+ //disabled
+ 
+  
+  
+ 
+ void Adafruit_PWMServoDriver__add(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A,
+        Adafruit_PWMServoDriver_ATTR_ARRAY_T  &Adafruit_PWMServoDriver_ATTR_ARRAY_A) {
+     int i;
+    //int *ptrNumber;
+    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS ; i++) {
+        if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0 )) {
+            //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(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A);
+        }
+    }
+  
+ }
+  
+  
+  
+  
   
  int Adafruit_PWMServoDriver_init_all(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A) {
     int i;
     //int *ptrNumber;
-    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS ; i++) {
+    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
         if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0 )) {
             //Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A = I2C_ADDRESS_A;
             //Adafruit_PWMServoDriver _class_cntr = Adafruit_PWMServoDriver(I2C_ADDRESS_A) ;
@@ -23,7 +45,7 @@
   
  int Adafruit_PWMServoDriver_begin_all(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A) {
   int i;
-    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS ; i++) {
+    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
         if(not(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == 0)) {
             Adafruit_PWMServoDriver_A[i].Adafruit_PWMServoDriver_V.begin();
              Serial.print("#577 setPWM  begin ["); Serial.print(i);  Serial.println("]");
@@ -39,7 +61,7 @@
  I2C_ADDRESS_T I2C_ADDRESS_A ) {
     int i;
     //int *ptrNumber;
-    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS ; i++) {
+    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) {
             Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A = I2C_ADDRESS_A;
             //Adafruit_PWMServoDriver _class_cntr = Adafruit_PWMServoDriver(I2C_ADDRESS_A) ;
@@ -53,7 +75,7 @@
 
  int Adafruit_PWMServoDriver_begin(Adafruit_PWMServoDriver_T* Adafruit_PWMServoDriver_A,I2C_ADDRESS_T I2C_ADDRESS_A) {
   int i;
-    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS ; i++) {
+    for(i=1;i<=ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C ; i++) {
         if(Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A == I2C_ADDRESS_A) {
             Adafruit_PWMServoDriver_A[i].Adafruit_PWMServoDriver_V.begin();
              Serial.print("#577 setPWM  begin ["); Serial.print(i);  Serial.println("]");
@@ -91,7 +113,7 @@ ARDUINO_ARRAY_PRIMARY_KET_T Adafruit_PWMServoDriver__get_PRIMARY_KET_T(Adafruit_
             break;
         }
     }
-    //return 1;
+    return 0;
   }
 
 
@@ -114,7 +136,7 @@ void Adafruit_PWMServoDriver__print_status(Adafruit_PWMServoDriver_T* Adafruit_P
  
  int Adafruit_PWMServoDriver_init_I = Adafruit_PWMServoDriver_init_all(Adafruit_PWMServoDriver_A);
 
-  
+ 
 
 /*
 Adafruit_PWMServoDriver Adafruit_PWMServoDriver_F(I2C_ADDRESS_T I2C_ADDRESS_A) {

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_setup.h

@@ -9,6 +9,9 @@
 #endif
 
 
+
+ Adafruit_PWMServoDriver__add(Adafruit_PWMServoDriver_A,Adafruit_PWMServoDriver_ATTR_ARRAY_A);
+
 int Adafruit_PWMServoDriver_begin_all_R = Adafruit_PWMServoDriver_begin_all(Adafruit_PWMServoDriver_A); 
 
 /* redefine

+ 28 - 3
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver/_I2C_driver_Adafruit_PWMServoDriver_struct.h

@@ -28,16 +28,41 @@ typedef struct ARDUINO_METHOD_ARRAY_S ARDUINO_METHOD_ARRAY_T ;
 //Adafruit_PWMServoDriver Adafruit_PWMServoDriver_T[0] = new Adafruit_PWMServoDriver(0x41);
 
 
+typedef struct ARDUINO_ATTR_ARRAY_S  Adafruit_PWMServoDriver_ATTR_ARRAY_T;
+
+static Adafruit_PWMServoDriver_ATTR_ARRAY_T  Adafruit_PWMServoDriver_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
+        {    ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
+             ARDUINO_ARRAY_INDEX_LAST_INIT ,
+             ARDUINO_ARRAY_COUNT_T_INIT ,
+             ARDUINO_ARRAY_INDEX_LIMIT_PORTS , 
+             ARDUINO_ARRAY_INDEX_NEXT_INIT,
+             ARDUINO_ARRAY_time_min_run_MIN_INIT,
+             ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT  
+              }
+    ;
+
 
 struct Adafruit_PWMServoDriver_S {
-        I2C_ADDRESS_T I2C_ADDRESS_A;
+        //USE I2C_ARRAY_DRIVER_T;
+            I2C_ADDRESS_T I2C_ADDRESS_A;
+            // USE ARDUINO_ARRAY_DRIVER_T;
+              ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A ;
         Adafruit_PWMServoDriver Adafruit_PWMServoDriver_V ;
         
     };
   
   typedef struct Adafruit_PWMServoDriver_S Adafruit_PWMServoDriver_T;
   
-  Adafruit_PWMServoDriver_T Adafruit_PWMServoDriver_A[5] = {
+  static Adafruit_PWMServoDriver_T Adafruit_PWMServoDriver_A[ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C]={};
+  
+  
+  
+  
+ 
+  
+  /*
+  
+  static Adafruit_PWMServoDriver_T Adafruit_PWMServoDriver_A[5] = {
        { I2C_ADDRESS_0x40 }
        //,
       // { I2C_ADDRESS_0x41 },
@@ -45,4 +70,4 @@ struct Adafruit_PWMServoDriver_S {
       // { I2C_ADDRESS_0x43 },
       // { I2C_ADDRESS_0x44 }
   };
- 
+ */

+ 2 - 2
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_I2C_func.h

@@ -21,7 +21,7 @@
     
     
     
-    I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A ;
+  //  I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A ;
     //auto I2C_INDEX_DRIVER_T I2C_INDEX_DRIVER_A  ;
     
     
@@ -69,7 +69,7 @@
                
                     if(Slave_Ports_Status_A[i].I2C_driver == I2C_driver_Adafruit_PWMServoDriver) {
                           //ARDUINO_ARRAY_PRIMARY_KET_T  Adafruit_PWMServoDriver__get_PRIMARY_KET_A = Adafruit_PWMServoDriver__get_PRIMARY_KET_T(
-                          I2C_INDEX_DRIVER_A = Adafruit_PWMServoDriver__get_PRIMARY_KET_T(
+                       I2C_INDEX_DRIVER_T   I2C_INDEX_DRIVER_A = Adafruit_PWMServoDriver__get_PRIMARY_KET_T(
                                 Adafruit_PWMServoDriver_A, Slave_Ports_Status_A[i].Address);
                                 
                             if(I2C_INDEX_DRIVER_A > 0 ) {//Slave_Ports_Status_A[i].Address == I2C_ADDRESS_0x40 ) {

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

@@ -4,7 +4,7 @@
 #define HAS_ROTTARY_SW
 #define HAS_TFT_ILI9163C
 #define HAS_I2C_driver_Adafruit_PWMServoDriver 
-
+#define DEBUG_I2C_driver_Adafruit_PWMServoDriver
 
 
 #define DEBUG 5 

+ 31 - 12
SE/stuff/P5_Automation_can-dev-res/__main_I2C_struc.h

@@ -4,26 +4,34 @@ typedef int I2C_ADDRESS_T ;
 
 
 
+typedef ARDUINO_ARRAY_INDEX_DRIVER_T I2C_INDEX_DRIVER_T; 
 
 
 
-
-const I2C_ADDRESS  I2C_ADDRESS_0x40  = 0x40 ;
-const I2C_ADDRESS  I2C_ADDRESS_0x41  = 0x41 ;
-const I2C_ADDRESS  I2C_ADDRESS_0x42  = 0x42 ;
-const I2C_ADDRESS  I2C_ADDRESS_0x43  = 0x43 ;
-const I2C_ADDRESS  I2C_ADDRESS_0x44  = 0x44 ; 
+const I2C_ADDRESS_T  I2C_ADDRESS_0x40  = 0x40 ;
+const I2C_ADDRESS_T  I2C_ADDRESS_0x41  = 0x41 ;
+const I2C_ADDRESS_T  I2C_ADDRESS_0x42  = 0x42 ;
+const I2C_ADDRESS_T  I2C_ADDRESS_0x43  = 0x43 ;
+const I2C_ADDRESS_T  I2C_ADDRESS_0x44  = 0x44 ; 
 
 
 //static ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_T;
 
 
 
+struct I2C_ARRAY_DRIVER_S {
+    I2C_ADDRESS_T I2C_ADDRESS_A;
+   // ARDUINO_ARRAY_DRIVER_T;
+   ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T ARDUINO_ARRAY_INDEX_DRIVER_STATUS_A ;
+};
 
-
+typedef I2C_ARRAY_DRIVER_S I2C_ARRAY_DRIVER_T ;
 
 typedef struct ARDUINO_ATTR_ARRAY_S I2C_ARDUINO_ATTR_ARRAY_T;
-extern 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 =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
         {    ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
              ARDUINO_ARRAY_INDEX_LAST_INIT ,
              ARDUINO_ARRAY_COUNT_T_INIT ,
@@ -34,8 +42,19 @@ extern I2C_ARDUINO_ATTR_ARRAY_T  I2C_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARR
               }
     ;
 
-typedef ARDUINO_ARRAY_INDEX_T I2C_INDEX_DRIVER_T ; //DO NP INDEX GDIZE JEST ZAINCJALIZOWANY JAKIS HANDLER  Adafruit_PWMServoDriver_A[i].I2C_ADDRESS_A ...
+//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]={} ; //
+
+         /*
+void I2C_INDEX_DRIVER__add(I2C_INDEX_DRIVER_T*  I2C_INDEX_DRIVER_A, I2C_ARDUINO_ATTR_ARRAY_T  &I2C_ARDUINO_ATTR_ARRAY_A) {
+        I2C_INDEX_DRIVER_A[1].I2C_ADDRESS_A = I2C_ADDRESS_0x40 ;
+        I2C_INDEX_DRIVER_A[2].ARDUINO_ARRAY_INDEX_DRIVER_STATUS_T = ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_INIT_A ;
+};
+*/
+/*
+I2C_INDEX_DRIVER_A[1] = { //todo dynamic
+        I2C_ADDRESS_0x40 , //I2C_ADDRESS_T I2C_ADDRESS_A;
+        ARDUINO_ARRAY_INDEX_DRIVER_STATUS_TO_INIT_A //ARDUINO_ARRAY_DRIVER_T;
+    };
+*/

+ 3 - 2
SE/stuff/P5_Automation_can-dev-res/__main_extern.h

@@ -5,8 +5,9 @@ the program files. When you use 'extern', the variable cannot be initialized how
 it points the variable name at a storage location that has been previously defined.
 
 When you have multiple files and you define a global variable or function, which will also be used in
- other files, then extern will be used in another file to provide the reference of defined variable or function. 
- Just for understanding, extern is used to declare a global variable or function in another file.
+ other files, then extern will be used in another file to provide the reference of defined variable
+  or function.  Just for understanding, extern is used to declare a global variable or 
+  function in another file.
 
 The extern modifier is most commonly used when there are two or more files sharing the same global 
 variables or functions as explained below.

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res/__main_init.h

@@ -5,6 +5,9 @@ ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT_Slave_Ports_queue__add ;
 ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT__Slave_Ports_LOCAL_init ;
 
 
+
+
+
 /*
 ARDUINO_LOOP_LATENCY_T      ARDUINO_LOOP_LATENCY__MAIN_A = 100 ; //EVERY 10 LOOPS INIT THIS LATENCY
 ARDUINO_LOOP_LATENCY_COUNTER_T  ARDUINO_LOOP_LATENCY_COUNTER__MAIN_A = 0 ;// = ARDUINO_LOOP_LATENCY_COUNTER_INIT ; //WILL decrement

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res/__main_struct_limits.h

@@ -4,6 +4,9 @@ const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_T_TO_DELETE_S_LIMIT = 5 ;
 
 
 const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_PORTS = 50 ;
+
+const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_PORTS_I2C = 5 ;
+
 const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY = 10 ;
 
 const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_QUEUE = 20 ;