zdenekpetrzd

Diagnostika

Apr 23rd, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. int skupina1[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
  2. int skupina1Zapsana[20];
  3. int skupina2[] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1};
  4. int skupina2Zapsana[20];
  5.  
  6.  
  7. int dataPin = 6;
  8. int clockPin = 7;
  9. int latchPin = 8;
  10. byte data01 = B00000000;
  11. byte data02 = B00000000;
  12. byte data03 = B00000000;
  13. byte data11 = B00000000;
  14. byte data12 = B00000000;
  15. byte data13 = B00000000;
  16.  
  17.  
  18. void setup() {
  19. Serial.begin(115200);
  20.  
  21. }
  22.  
  23. void loop() {
  24. diagnostikaShiftOut();
  25.  
  26. }
  27.  
  28. void diagnostikaShiftOut() {
  29. bool zapisNaDiagnostiku = false;
  30.  
  31. for(int i=0; i<20; i++) {
  32. if(skupina1[i] != skupina1Zapsana[i]) {
  33. zapisNaDiagnostiku = true;
  34. if(i < 8) {
  35. bitWrite(data01, i, skupina1[i]);
  36. }
  37. else if(i > 7 && i < 16) {
  38. bitWrite(data02, i-8, skupina1[i]);
  39. }
  40. else if(i > 15 && i < 20) {
  41. bitWrite(data03, i-16, skupina1[i]);
  42. }
  43. skupina1Zapsana[i] = skupina1[i];
  44. }
  45. if(skupina2[i] != skupina2Zapsana[i]) {
  46. zapisNaDiagnostiku = true;
  47. if(i < 8) {
  48. bitWrite(data11, i, skupina2[i]);
  49. }
  50. else if(i > 7 && i < 16) {
  51. bitWrite(data12, i-8, skupina2[i]);
  52. }
  53. else if(i > 15 && i < 20) {
  54. bitWrite(data13, i-16, skupina2[i]);
  55. }
  56. skupina2Zapsana[i] = skupina2[i];
  57. }
  58. }
  59. if(zapisNaDiagnostiku == true) {
  60. digitalWrite(latchPin, LOW);
  61. shiftOut(dataPin, clockPin, LSBFIRST, data01);
  62. shiftOut(dataPin, clockPin, LSBFIRST, data02);
  63. shiftOut(dataPin, clockPin, LSBFIRST, data03);
  64. shiftOut(dataPin, clockPin, LSBFIRST, data11);
  65. shiftOut(dataPin, clockPin, LSBFIRST, data12);
  66. shiftOut(dataPin, clockPin, LSBFIRST, data13);
  67. digitalWrite(latchPin, HIGH);
  68. }
  69.  
  70. printBinary(data01);
  71. printBinary(data02);
  72. printBinary(data03);
  73. Serial.println();
  74. printBinary(data11);
  75. printBinary(data12);
  76. printBinary(data13);
  77. Serial.println();
  78. }
  79.  
  80. void printBinary(byte inByte) {
  81. for (int b = 7; b >= 0; b--) {
  82. Serial.print(bitRead(inByte, b));
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment