Browse Source

trying to reuse old code for libs cut

a.binder 5 years ago
parent
commit
5a610a95cc
19 changed files with 473 additions and 14 deletions
  1. 5 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/P5_Automation_can-dev-res-working-1930.ino
  2. 8 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/PCF8574_h.h
  3. 3 1
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/PCF8574_h.ino
  4. 2 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/PCF8574_h__const.h
  5. 0 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/ctrl.h
  6. 0 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/scan.h
  7. 0 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/struct.h
  8. 4 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/LiquidCrystal_I2C_init.h
  9. 129 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/LiquidCrystal_I2C_print.h
  10. 74 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/LiquidCrystal_I2C_setup.h
  11. 44 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h.h
  12. 60 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h.ino
  13. 3 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h__init.h
  14. 3 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h__loop.h
  15. 105 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h__struct.h
  16. 5 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/latency__loop.h
  17. 5 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/latency__struct.h
  18. 20 13
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/gyro_and_compass_test/compass__loop.h
  19. 3 0
      SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/struct_h/struct_h__struct.h

+ 5 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/P5_Automation_can-dev-res-working-1930.ino

@@ -108,6 +108,11 @@
 //#define DEBUG_LATENCY_MARKER
 
 //ports assign config
+#define PortA1 A1  //for rottary pro mini SW
+#define PortA2 A2  //for rottary pro mini SW DT
+#define PortA3 A3  //for rottary pro mini SW CLK
+
+
 #define PortA7 A7  //
 #define PortA8 A8  //for rottary sw
 #define PortA9 A9  //for rottary sw dt

+ 8 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/PCF8574_h.h

@@ -0,0 +1,8 @@
+
+void  PCF8574_h() { 
+
+      Wire.beginTransmission(PCF_LASER_ADDR);
+      Wire.write(0x00);
+      Wire.endTransmission();
+      
+  }

+ 3 - 1
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_test/PCF8574_test.ino → SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/PCF8574_h.ino

@@ -12,13 +12,15 @@
 //PCF8574 PCF_01(0x38);
 #include "struct.h"
 
-const int PCF_ADDR = 0x20 ;
+#include "PCF8574_h__const.h"
 const int PCF_LASER_ADDR = 0x24 ;
+
 const byte PCF_LASER_ADDR_white_led_pin   = B10000000 ;
 const byte PCF_LASER_ADDR_white_laser_pin = B00000001 ;
 
 
 #include "ctrl.h"
+#include "PCF8574_h.h"
 
 void setup()
 {

+ 2 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/PCF8574_h__const.h

@@ -0,0 +1,2 @@
+
+const int PCF_ADDR = 0x20 ;

+ 0 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_test/ctrl.h → SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/ctrl.h


+ 0 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_test/scan.h → SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/scan.h


+ 0 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_test/struct.h → SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/PCF8574_h/struct.h


+ 4 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/LiquidCrystal_I2C_init.h

@@ -0,0 +1,4 @@
+
+
+const display__dimension_X_T display__dimension_X__lcd_A = 20 ;
+const display__dimension_Y_T display__dimension_Y__lcd_A = 4 ;

+ 129 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/LiquidCrystal_I2C_print.h

@@ -0,0 +1,129 @@
+void display__print__struct_T__lcd__print(//display__print__struct_T* display__print__struct_A
+    ) {
+      Serial.print(" 1D#[");Serial.print(String(display__print__struct_A[0].display__print__queue_A,BIN));Serial.print("] ");
+   
+   
+   
+    for (display__print__queue_T bitpos = 0 ; bitpos <8 ; bitpos++ ) {
+          if(bitRead(display__print__struct_A[0].display__print__queue_A, bitpos) == 1) {
+              Serial.println();
+            
+                //find free space or timeouted; beg cursor ;ctx allocated setup
+                //foreach used alloc, if free next - use, else move cursor after used one (find req space)
+                display__print__alloc_window_T display__print__alloc_window_A[display__print__alloc_struct_A[  display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A] ;
+
+                for(display__print__queue_T findpos = 0 ; findpos < 8 ; findpos ++ ) {
+                        if(display__print__struct_A[bitpos].display__print__alloc__index_A ==  display__print__struct_A[findpos].display__print__alloc__index_A
+                              and  bitRead(display__print__alloc_used_struct_A[0].display__print__alloc_queue_A, findpos) == 1 ) {
+                            Serial.print(" Fnd #["); Serial.print(findpos);Serial.print("] B[");   Serial.print(String(display__print__alloc_used_struct_A[0].display__print__alloc_queue_A,BIN));Serial.print("] CurX["); 
+                                Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A ); 
+                                Serial.print("] x[");
+                                Serial.print(display__print__alloc_used_struct_A[findpos].display__dimension_X_min_alloc_A);Serial.print("/");
+                                Serial.print(display__print__alloc_used_struct_A[findpos].display__dimension_X_max_alloc_A);Serial.print("] ts[");
+                                Serial.print(display__print__alloc_used_struct_A[findpos].display__print__queue__latency_millis_A); Serial.print("] ");
+                                
+                                //if  x1...CurX[0]...x2] postpone to
+                                //if  len + x2 > max postpone
+                                // 
+                                for(int Xanal  = display__print__alloc_used_struct_A[findpos].display__dimension_X_min_alloc_A ; Xanal <= display__print__alloc_used_struct_A[findpos].display__dimension_X_max_alloc_A ; Xanal ++ ) {
+                                    display__print__alloc_window_A[Xanal].used = true;
+                                }
+                                
+                        }
+                
+                }
+                   int Window = 0 ;
+                   int Window_MAX = 0 ;
+               for(int Xanal = display__print__alloc_struct_A[  display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_min_alloc_A ;
+                            Xanal <=display__print__alloc_struct_A[  display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A ;
+                            Xanal ++ ) {
+                                if(display__print__alloc_window_A[Xanal].used == false) {
+                                    Window ++ ;
+                                } else {
+                                    if(Window > Window_MAX) Window_MAX = Window;
+                                    Window = 0; 
+                                }
+                            }
+                Serial.print("W[");Serial.print(Window_MAX);Serial.print("] ");
+                Serial.println();
+              lcd.setCursor(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A ,
+                            display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A) ;
+                display__print__alloc_used_struct_A[bitpos].display__dimension_X_min_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A ;
+                display__print__alloc_used_struct_A[bitpos].display__dimension_Y_min_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ;
+               //set new xy pos
+               int size;
+               int size_x_used = 0;
+                 Serial.print(" C7[");  Serial.print(display__print__struct_A[bitpos].display__print__character_8_A[6]);  Serial.print("] S[");
+                      Serial.print(display__print__struct_A[bitpos].display__print__alloc__index_A); Serial.print("]");
+                      //display__print__character_8_size_A
+                      for(size = 0; size <=limits_display__print__character_8_A; size ++) { //limits_display__print__character_8_A
+                           if( size >= display__print__struct_A[bitpos].display__print__character_8_size_A - 0) break;
+                           //if(sizeof(display__print__struct_A[bitpos].display__print__character_8_A[size]) == 0) break;
+                           //test bounds //test millis
+                           if( (
+                           display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A 
+                           + size ) > display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A) {
+                                    //>x max exceeded
+                                    Serial.print(" Xmax!@C["); Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A);
+                                    Serial.print("/");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A);Serial.print("] ");
+                                        //test if next row avilable
+                                    if(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A <
+                                        display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_max_alloc_A) {
+                                            //next row avilable //move cursor //not using only one alloc
+                                                //no change for Y
+                                              display__print__alloc_used_struct_A[bitpos].display__dimension_X_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A + size ;// display__print__alloc_used_struct_A[bitpos].display__dimension_X_min_alloc_A + size ; 
+                                              display__print__alloc_used_struct_A[bitpos].display__dimension_Y_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ;
+                                              
+                                              display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_min_alloc_A ;
+                                              size_x_used = 0;
+                                              display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ++ ;
+                                              Serial.print(" $E1[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A );Serial.print("] ");
+                                                //put rest to next 
+                                             
+                                             break; 
+                                                 //test if segment avialble
+                                                //fix allocate
+                                              
+                                             
+                                                
+                                                
+                                        } else { //no next Y .. go to first
+                                                      display__print__alloc_used_struct_A[bitpos].display__dimension_X_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A + size ;//display__print__alloc_used_struct_A[bitpos].display__dimension_X_min_alloc_A + size ; 
+                                                      display__print__alloc_used_struct_A[bitpos].display__dimension_Y_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A ;
+                                                      display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_min_alloc_A ;
+                                                      size_x_used = 0;
+                                                      display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_cursor_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_Y_min_alloc_A  ;
+                                                      Serial.print(" $E2 siz[");Serial.print(size);Serial.print("/");Serial.print(display__print__struct_A[bitpos].display__print__character_8_size_A);Serial.print("]");
+                                                       break; 
+                                        }
+                                }
+                           size_x_used ++ ;
+                           display__print__alloc_used_struct_A[bitpos].display__dimension_X_max_alloc_A = display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A + size ;
+
+                           lcd.print(display__print__struct_A[bitpos].display__print__character_8_A[size]);
+                           Serial.print(display__print__struct_A[bitpos].display__print__character_8_A[size]);
+                      }
+           
+              
+              Serial.print(" b[");Serial.print(bitpos);Serial.print("] X[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A);Serial.print("] ");
+             
+              //todo new row
+              display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A 
+                += size_x_used;
+                Serial.print("] Xn[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_cursor_A);Serial.print("] ");
+                //todo alloc 
+                //means was printed and shoild be refreshed 
+                display__print__alloc_used_struct_A[bitpos].display__print__queue__latency_millis_A = display__print__struct_A[bitpos].display__print__queue__latency_millis_A ;
+                bitWrite(display__print__alloc_used_struct_A[0].display__print__alloc_queue_A,  bitpos , 1);
+                bitWrite(display__print__alloc_used_struct_A[bitpos].display__print__alloc_queue_A,  bitpos , 1);
+               
+                Serial.print(" xm[");Serial.print(display__print__alloc_struct_A[ display__print__struct_A[bitpos].display__print__alloc__index_A ].display__dimension_X_max_alloc_A);Serial.print("] ");
+                
+              Serial.print(" D<");Serial.print(bitpos);
+              bitWrite(display__print__struct_A[0].display__print__queue_A, bitpos,  0);
+              bitWrite(display__print__struct_A[bitpos].display__print__queue_A, bitpos,  0); //extra
+          } 
+    }    
+          Serial.print(" 2D#[");Serial.print(String(display__print__struct_A[0].display__print__queue_A,BIN));Serial.print("] ");
+
+ }

+ 74 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/LiquidCrystal_I2C_setup.h

@@ -0,0 +1,74 @@
+
+  
+// lcd.init();                      // initialize the lcd 
+
+
+  lcd.init();                      // Print a message to the LCD.
+  lcd.backlight();
+  lcd.setCursor(0,0);
+  SPFTlcd(title);
+ // lcd.setCursor(0,1);
+  
+    //todo connfig screen
+  display__print__alloc__index_T display__print__alloc__index_setup_A =  
+    display__print__alloc_struct_T__add(0,1,18,2) ; //xmin ymin xmax ymax
+    
+    display__print__character_8_T  display__print__character_8_A ;
+    String display__print__character_8_S_A;
+  //  unsigned int display__print__character_8_S_A_L;
+        display__print__character_8_S_A = "abcdefg";
+//        display__print__character_8_S_A_L = display__print__character_8_S_A.length()
+        display__print__character_8_S_A.toCharArray(display__print__character_8_A,display__print__character_8_S_A.length()+1) ;
+   display__print__struct_T__add(display__print__character_8_A, display__print__character_8_S_A.length(),  millis() + 1000, display__print__alloc__index_setup_A );
+ // lcd.print(F("AxyeTb!"));
+ // lcd.setCursor(0,2);
+                                                               // "AxyeTb_"
+  //display__print__character_8_T 
+      display__print__character_8_S_A = "1234567";
+      display__print__character_8_S_A.toCharArray(display__print__character_8_A,display__print__character_8_S_A.length()+1 );
+
+  
+  //char display__print__character_8_A1[] = "1234567";
+  display__print__struct_T__add(display__print__character_8_A, display__print__character_8_S_A.length(),  millis() + 3000, display__print__alloc__index_setup_A );
+
+//char display__print__character_8_A2 = "09876543";
+      display__print__character_8_S_A = "09876543abcdef";
+      display__print__character_8_S_A.toCharArray(display__print__character_8_A,display__print__character_8_S_A.length()+1) ;
+      display__print__struct_T__add(display__print__character_8_A, display__print__character_8_S_A.length(),  millis() + 1000, display__print__alloc__index_setup_A );
+
+      display__print__character_8_S_A = "_shld__ve_ao" ;
+      display__print__character_8_S_A.toCharArray(display__print__character_8_A,display__print__character_8_S_A.length()+1) ;
+      display__print__struct_T__add(display__print__character_8_A, display__print__character_8_S_A.length(),  millis() + 1000, display__print__alloc__index_setup_A );
+
+
+      display__print__character_8_S_A = "**GO TO ONE LINE FINIS" ;
+      display__print__character_8_S_A.toCharArray(display__print__character_8_A,display__print__character_8_S_A.length()+1) ;
+      display__print__struct_T__add(display__print__character_8_A, display__print__character_8_S_A.length(),  millis() + 1000, display__print__alloc__index_setup_A );
+
+      display__print__character_8_S_A = "Ffinish_at111" ;
+      display__print__character_8_S_A.toCharArray(display__print__character_8_A,display__print__character_8_S_A.length()+1) ;
+      display__print__struct_T__add(display__print__character_8_A, display__print__character_8_S_A.length(),  millis() + 1000, display__print__alloc__index_setup_A );
+
+
+
+  //lcd.print(F("I2C 1604 DEMO"));
+  
+    display__print__struct_T__lcd__print() ;//display__print__struct_A
+
+  
+ // lcd.setCursor(0,3);
+ // lcd.print("UGR Edition");
+  
+  
+   //     SPFT(title);  
+
+  //lcd.createChar
+  delay(5000);
+ //lcd.clear();
+ // lcd.setCursor(0,3);
+
+  
+
+
+
+  

+ 44 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h.h

@@ -0,0 +1,44 @@
+void display_bit_shift_h() {
+  
+ }
+ 
+ 
+ void display__print__struct_T__add(//display__print__struct_T* display__print__struct_A,
+     display__print__character_8_T display__print__character_8_A, 
+     display__print__character_8_size_T display__print__character_8_size_A,
+     display__print__queue__latency_millis_T display__print__queue__latency_millis_A,
+     display__print__alloc__index_T display__print__alloc__index_A
+     ) {
+     Serial.println();
+    for (int bitpos = 0 ; bitpos <8 ; bitpos++ ) {
+        if(bitRead(display__print__struct_A[0].display__print__queue_A, bitpos) == 0) {
+           int size = display__print__character_8_size_A;
+           /*
+           for(size = 0; size < limits_display__print__character_8_A; size ++) {
+               // if(display__print__character_8_A[size] == '0') {
+               // } else 
+               Serial.print("*");
+               Serial.print(sizeof(display__print__character_8_A[size]));
+               if( (display__print__character_8_A[size].length()) == 0  ) break;
+           }
+           */
+           memcpy(display__print__struct_A[bitpos].display__print__character_8_A , display__print__character_8_A , size  );
+           display__print__struct_A[bitpos].display__print__character_8_size_A = display__print__character_8_size_A;
+           display__print__struct_A[bitpos].display__print__alloc__index_A = display__print__alloc__index_A ;
+            bitSet(display__print__struct_A[0].display__print__queue_A,bitpos); //todo next
+            bitSet(display__print__struct_A[bitpos].display__print__queue_A,bitpos); //extra
+            display__print__struct_A[bitpos].display__print__queue__latency_millis_A = display__print__queue__latency_millis_A ;
+            Serial.print(" D+[");Serial.print(String(bitpos));Serial.print("] e["); 
+                  Serial.print(size);
+                  // Serial.print(String(display__print__character_8_A[5]));
+
+                 Serial.print("] ");
+            Serial.print(" 0D#[");Serial.print(String(display__print__struct_A[0].display__print__queue_A,BIN));Serial.print("] ");
+
+            return  ; 
+        } else {
+                Serial.print("D![");Serial.print(bitpos);Serial.print("] ");
+        }
+    }
+ 
+ }

+ 60 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h.ino

@@ -0,0 +1,60 @@
+#define HAS_18x4LCD
+#include <math.h>
+
+
+#include "progmem.h"
+
+#include "struct_h.h"
+#include "latency__struct.h"
+
+
+
+#include "display_bit_shift_h__struct.h"
+#include "display_bit_shift_h__init.h"
+#include "display_bit_shift_h.h"
+
+
+
+
+#if defined(HAS_18x4LCD)
+    #include <LiquidCrystal_I2C.h>
+    LiquidCrystal_I2C lcd(0x27,16,4);  // set the LCD address to 0x27 or 0x20
+    #include "LiquidCrystal_I2C_init.h";
+    #include "LiquidCrystal_I2C_print.h";
+#endif
+
+
+
+void setup()
+{
+    Serial.begin(115200);
+
+    
+    #if defined(HAS_18x4LCD)
+        #include "LiquidCrystal_I2C_setup.h"
+    #endif
+    
+    
+
+}
+
+
+
+latency_exp_delta_ROOT_T latency_exp_delta_ROOT_A = 1500 ;
+latency_exp_delay_ROOT_T latency_exp_delay_ROOT_A = 50 ;
+void loop()
+{
+    #include "latency__loop.h"
+
+    if ( latency_millis_ROOT_A < millis() ) {
+        latency_millis_ROOT_A = millis() + latency_exp_delta_ROOT_A;			// every 15 seconds
+           Serial.println("[L]");
+    
+     #if defined(HAS_18x4LCD)
+        #include "display_bit_shift_h__loop.h"
+         display__print__struct_T__lcd__print() ;
+    #endif
+      }
+     
+    delay(latency_exp_delay_ROOT_A);
+}

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h__init.h

@@ -0,0 +1,3 @@
+character_8_T character_8_A[5] ;
+bool res = display__char_A__init(character_8_A);
+

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h__loop.h

@@ -0,0 +1,3 @@
+lcd.createChar(0, character_8_A[4].character_5_A);
+lcd.setCursor(0,3);
+lcd.write(byte(0));

+ 105 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/display_bit_shift_h__struct.h

@@ -0,0 +1,105 @@
+
+const limits__display__print__struct_T limits__display__print__struct_A = 10;
+display__print__struct_T display__print__struct_A[limits__display__print__struct_A];
+const limits__display__print__alloc_struct_T limits__display__print__alloc_struct_A = 10 ;
+display__print__alloc_struct_T display__print__alloc_struct_A[limits__display__print__alloc_struct_A];
+
+display__print__alloc_used_struct_T display__print__alloc_used_struct_A[limits__display__print__struct_A] ;
+
+ 
+display__print__alloc__index_T display__print__alloc_struct_T__add(//display__print__alloc_struct_T* display__print__alloc_struct_A,
+    display__dimension_X_min_alloc_T display__dimension_X_min_alloc_A,
+    display__dimension_Y_min_alloc_T display__dimension_Y_min_alloc_A,
+    display__dimension_X_max_alloc_T display__dimension_X_max_alloc_A,
+    display__dimension_Y_max_alloc_T display__dimension_Y_max_alloc_A 
+    ) {
+     for (display__print__queue_T bitpos = 0 ; bitpos <8 ; bitpos ++) {
+        if(bitRead(display__print__alloc_struct_A[0].display__print__alloc_queue_A, bitpos) == 0) {
+            bitSet(display__print__alloc_struct_A[0].display__print__alloc_queue_A,bitpos); 
+            //bitSet(display__print__struct_A[bitpos].display__print__queue_A,bitpos); //extra
+             display__print__alloc_struct_A[bitpos].display__dimension_X_min_alloc_A = display__dimension_X_min_alloc_A ;
+             display__print__alloc_struct_A[bitpos].display__dimension_X_max_alloc_A = display__dimension_X_max_alloc_A ;
+             display__print__alloc_struct_A[bitpos].display__dimension_Y_min_alloc_A = display__dimension_Y_min_alloc_A ;
+             display__print__alloc_struct_A[bitpos].display__dimension_Y_max_alloc_A = display__dimension_Y_max_alloc_A ;
+             display__print__alloc_struct_A[bitpos].display__dimension_X_cursor_A = display__dimension_X_min_alloc_A ;
+             display__print__alloc_struct_A[bitpos].display__dimension_Y_cursor_A = display__dimension_Y_min_alloc_A ; 
+            return bitpos;
+        } 
+     }
+    
+    display__print__alloc_struct_A[0].display__dimension_X_min_alloc_A = display__dimension_X_min_alloc_A ;
+}
+ 
+
+bool display__char_A__init(character_8_T* character_8_A) {
+     //display__char_A[0].character = {B10001, B10001, B11001, B10101, B10011, B10001, B10001, B10001};
+     character_8_A[0].character_5_A[0] =  B10001 ;//{, , , , , , , };
+     character_8_A[0].character_5_A[1] =  B10001 ;
+     character_8_A[0].character_5_A[2] =  B11001 ;
+     character_8_A[0].character_5_A[3] =  B10101 ;
+     character_8_A[0].character_5_A[4] =  B10011 ;
+     character_8_A[0].character_5_A[5] =  B10001 ;
+     character_8_A[0].character_5_A[6] =  B10001 ;
+     character_8_A[0].character_5_A[7] =  B10001 ;
+
+     character_8_A[1].character_5_A[0] =  B11111  ;
+     character_8_A[1].character_5_A[1] =  B10000  ;
+     character_8_A[1].character_5_A[2] =  B10000  ;
+     character_8_A[1].character_5_A[3] =  B11111  ;
+     character_8_A[1].character_5_A[4] =  B10000  ;
+     character_8_A[1].character_5_A[5] =  B10000  ;
+     character_8_A[1].character_5_A[6] =  B10000  ;
+     character_8_A[1].character_5_A[7] =  B11111  ;
+
+// byte compass__S[8] = {, , , , , , , };
+
+     character_8_A[2].character_5_A[0] =   B01110 ;
+     character_8_A[2].character_5_A[1] =   B10001 ;
+     character_8_A[2].character_5_A[2] =   B01000 ;
+     character_8_A[2].character_5_A[3] =   B00100 ;
+     character_8_A[2].character_5_A[4] =   B00010 ;
+     character_8_A[2].character_5_A[5] =   B00001 ;
+     character_8_A[2].character_5_A[6] =   B10001 ;
+     character_8_A[2].character_5_A[7] =   B01110 ;
+     
+ //          byte compass__W[8] = {, , , , , , , };
+    
+     character_8_A[3].character_5_A[0] = B10001   ;
+     character_8_A[3].character_5_A[1] = B10001   ;
+     character_8_A[3].character_5_A[2] = B10101   ;
+     character_8_A[3].character_5_A[3] = B11011   ;
+     character_8_A[3].character_5_A[4] = B11011   ;
+     character_8_A[3].character_5_A[5] = B11011   ;
+     character_8_A[3].character_5_A[6] = B10001   ;
+     character_8_A[3].character_5_A[7] = B10001   ;
+     
+     //test X
+     character_8_A[4].character_5_A[0] = B10001   ;
+     character_8_A[4].character_5_A[1] = B11011   ;
+     character_8_A[4].character_5_A[2] = B11111   ;
+     character_8_A[4].character_5_A[3] = B11111   ;
+     character_8_A[4].character_5_A[4] = B11111   ;
+     character_8_A[4].character_5_A[5] = B11011   ;
+     character_8_A[4].character_5_A[6] = B10001   ;
+     character_8_A[4].character_5_A[7] = B10001   ;
+     
+     
+    /* 
+     character_8_A[0].character_5_A[0] =    ;
+     character_8_A[0].character_5_A[1] =    ;
+     character_8_A[0].character_5_A[2] =    ;
+     character_8_A[0].character_5_A[3] =    ;
+     character_8_A[0].character_5_A[4] =    ;
+     character_8_A[0].character_5_A[5] =    ;
+     character_8_A[0].character_5_A[6] =    ;
+     character_8_A[0].character_5_A[7] =    ;
+     */
+}
+
+
+
+
+
+
+  character_5_T   compass__bearing[8] = {B00100, B01110, B11111, B11111, B11111, B11111, B11111, B11011};
+       

+ 5 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/latency__loop.h

@@ -0,0 +1,5 @@
+typedef latency_millis_T latency_millis_ROOT_T ;
+typedef latency_exp_delta_T latency_exp_delta_ROOT_T ;
+typedef latency_exp_delay_T latency_exp_delay_ROOT_T ;
+
+latency_millis_ROOT_T latency_millis_ROOT_A = 0;

+ 5 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/display_bit_shift_h/latency__struct.h

@@ -0,0 +1,5 @@
+typedef latency_millis_T latency_millis_ROOT_T ;
+typedef latency_exp_delta_T latency_exp_delta_ROOT_T ;
+typedef latency_exp_delay_T latency_exp_delay_ROOT_T ;
+
+latency_millis_ROOT_T latency_millis_ROOT_A = 0;

+ 20 - 13
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/gyro_and_compass_test/compass__loop.h

@@ -31,15 +31,7 @@
   //draw bargraf
   //i * x = 360 ==22
   //0--8 >180 <0 ..
-  for(int i = 0 ; i <=16 ; i++ ) {
-    if(angle > 180) {
-      
-    } else {
-    }
-  
-  }
-
-   
+  angle = 289 ;
   
   lcd.createChar(0, compass__N);
   lcd.createChar(1, compass__E);
@@ -91,9 +83,20 @@
             if(context_is_printing == true) { 
                   for(int p = 0; p<8; p++) {
                         byte row ; 
-                        int shift = B00001;
-                        shift = shift << ( 4 - context_row ) ;
+                        int shift ;
+                        //shift = shift << ( 4 - context_row ) ;
+                        
+                        if(context_row == 0)          { shift = B10000; 
+                        } else   if(context_row == 1) { shift = B01000; 
+                        } else   if(context_row == 2) { shift = B00100; 
+                        } else   if(context_row == 3) { shift = B00010; 
+                        } else   if(context_row == 4) { shift = B00001; 
+                        } else  Serial.print("[#94E]");       
+                        
                         //bitWrite(row,1,1);
+                        Serial.print(String(shift,BIN)); 
+                        Serial.print(" ][ ");         
+
                         byte input = display__char_A[context_digit].character[p] & shift;
                         compass__bearing__part[p] = compass__bearing__part[p] | input ; // B11111 ; //compass__bearing[p] & B00001 ;
                         /*if(context_row == 0 ) {
@@ -107,7 +110,11 @@
                         } else if(context_row == 4 ) {
                             compass__bearing__part[p] = compass__bearing__part[p] | ( display__char_A[context_digit].character[p] & B00001 );// B11111 ; //compass__bearing[p] & B00001 ;
                         } */
-                     }
+                        Serial.println("] R{");
+                        Serial.print(String(compass__bearing__part[p],BIN));
+                        Serial.print("}");
+                     } 
+                          
                 context_digit_row_real ++;
                 
             }
@@ -158,4 +165,4 @@
      
     
 
-delay(110);
+delay(1100);

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/struct_h/struct_h__struct.h

@@ -0,0 +1,3 @@
+typedef unsigned long latency_millis_T ;
+typedef int latency_exp_delta_T ;
+typedef int latency_exp_delay_T ;