test.ino 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #include <Arduino.h>
  2. #include "GyverIO.h"
  3. // gio::SSPI<false, 4000000> spi0;
  4. // gio::SSPI<false, 4000000, 9> spi1;
  5. // gio::SSPI<false, 4000000> spi2(9);
  6. // gio::SSPI<true, 4000000, 9, 11, 13> spi3;
  7. // gio::SSPI<true, 4000000> spi4(9, 11, 13);
  8. #define PIN_DAT 7
  9. #define PIN_CLK 6
  10. byte datNC, clkNC;
  11. void setup() {
  12. pinMode(PIN_DAT, OUTPUT);
  13. pinMode(PIN_CLK, OUTPUT);
  14. // gio::shift::send_byte(PIN_DAT, PIN_CLK, MSBFIRST, 0b10100101);
  15. }
  16. void loop() {
  17. datNC = digitalRead(5);
  18. clkNC = digitalRead(5);
  19. datNC = PIN_DAT;
  20. clkNC = PIN_CLK;
  21. digitalWrite(PIN_DAT, 1);
  22. delayMicroseconds(50);
  23. digitalWrite(PIN_DAT, 0);
  24. delayMicroseconds(50);
  25. noInterrupts();
  26. shiftOut(datNC, clkNC, MSBFIRST, 0b10100101);
  27. shiftOut(PIN_DAT, PIN_CLK, MSBFIRST, 0b10100101);
  28. gio::shift::send_byte(datNC, clkNC, MSBFIRST, 0b10100101);
  29. gio::shift::send_byte(PIN_DAT, PIN_CLK, MSBFIRST, 0b10100101);
  30. delayMicroseconds(50);
  31. // ardu write nc
  32. digitalWrite(datNC, 1);
  33. digitalWrite(datNC, 0);
  34. digitalWrite(datNC, 1);
  35. digitalWrite(datNC, 0);
  36. digitalWrite(datNC, 1);
  37. digitalWrite(datNC, 0);
  38. digitalWrite(datNC, 1);
  39. digitalWrite(datNC, 0);
  40. digitalWrite(datNC, 1);
  41. digitalWrite(datNC, 0);
  42. delayMicroseconds(10);
  43. // ardu write
  44. digitalWrite(PIN_DAT, 1);
  45. digitalWrite(PIN_DAT, 0);
  46. digitalWrite(PIN_DAT, 1);
  47. digitalWrite(PIN_DAT, 0);
  48. digitalWrite(PIN_DAT, 1);
  49. digitalWrite(PIN_DAT, 0);
  50. digitalWrite(PIN_DAT, 1);
  51. digitalWrite(PIN_DAT, 0);
  52. digitalWrite(PIN_DAT, 1);
  53. digitalWrite(PIN_DAT, 0);
  54. delayMicroseconds(10);
  55. // ardu read nc
  56. gio::write(PIN_DAT, 1);
  57. gio::write(PIN_DAT, 0);
  58. gio::write(PIN_DAT, 1);
  59. gio::write(PIN_DAT, 0);
  60. gio::write(PIN_DAT, 1);
  61. digitalRead(datNC);
  62. gio::write(PIN_DAT, 0);
  63. gio::write(PIN_DAT, 1);
  64. gio::write(PIN_DAT, 0);
  65. gio::write(PIN_DAT, 1);
  66. gio::write(PIN_DAT, 0);
  67. delayMicroseconds(10);
  68. // ardu read
  69. gio::write(PIN_DAT, 1);
  70. gio::write(PIN_DAT, 0);
  71. gio::write(PIN_DAT, 1);
  72. gio::write(PIN_DAT, 0);
  73. gio::write(PIN_DAT, 1);
  74. digitalRead(PIN_DAT);
  75. gio::write(PIN_DAT, 0);
  76. gio::write(PIN_DAT, 1);
  77. gio::write(PIN_DAT, 0);
  78. gio::write(PIN_DAT, 1);
  79. gio::write(PIN_DAT, 0);
  80. delayMicroseconds(10);
  81. // ardu mode nc
  82. gio::write(PIN_DAT, 1);
  83. gio::write(PIN_DAT, 0);
  84. gio::write(PIN_DAT, 1);
  85. gio::write(PIN_DAT, 0);
  86. gio::write(PIN_DAT, 1);
  87. pinMode(datNC, OUTPUT);
  88. gio::write(PIN_DAT, 0);
  89. gio::write(PIN_DAT, 1);
  90. gio::write(PIN_DAT, 0);
  91. gio::write(PIN_DAT, 1);
  92. gio::write(PIN_DAT, 0);
  93. delayMicroseconds(10);
  94. // ardu mode
  95. gio::write(PIN_DAT, 1);
  96. gio::write(PIN_DAT, 0);
  97. gio::write(PIN_DAT, 1);
  98. gio::write(PIN_DAT, 0);
  99. gio::write(PIN_DAT, 1);
  100. pinMode(PIN_DAT, OUTPUT);
  101. gio::write(PIN_DAT, 0);
  102. gio::write(PIN_DAT, 1);
  103. gio::write(PIN_DAT, 0);
  104. gio::write(PIN_DAT, 1);
  105. gio::write(PIN_DAT, 0);
  106. delayMicroseconds(50);
  107. // gio write nc
  108. gio::write(datNC, 1);
  109. gio::write(datNC, 0);
  110. gio::write(datNC, 1);
  111. gio::write(datNC, 0);
  112. gio::write(datNC, 1);
  113. gio::write(datNC, 0);
  114. gio::write(datNC, 1);
  115. gio::write(datNC, 0);
  116. gio::write(datNC, 1);
  117. gio::write(datNC, 0);
  118. delayMicroseconds(10);
  119. // gio write
  120. gio::write(PIN_DAT, 1);
  121. gio::write(PIN_DAT, 0);
  122. gio::write(PIN_DAT, 1);
  123. gio::write(PIN_DAT, 0);
  124. gio::write(PIN_DAT, 1);
  125. gio::write(PIN_DAT, 0);
  126. gio::write(PIN_DAT, 1);
  127. gio::write(PIN_DAT, 0);
  128. gio::write(PIN_DAT, 1);
  129. gio::write(PIN_DAT, 0);
  130. delayMicroseconds(10);
  131. // gio read nc
  132. gio::write(PIN_DAT, 1);
  133. gio::write(PIN_DAT, 0);
  134. gio::write(PIN_DAT, 1);
  135. gio::write(PIN_DAT, 0);
  136. gio::write(PIN_DAT, 1);
  137. gio::read(datNC);
  138. gio::write(PIN_DAT, 0);
  139. gio::write(PIN_DAT, 1);
  140. gio::write(PIN_DAT, 0);
  141. gio::write(PIN_DAT, 1);
  142. gio::write(PIN_DAT, 0);
  143. delayMicroseconds(10);
  144. // gio read
  145. gio::write(PIN_DAT, 1);
  146. gio::write(PIN_DAT, 0);
  147. gio::write(PIN_DAT, 1);
  148. gio::write(PIN_DAT, 0);
  149. gio::write(PIN_DAT, 1);
  150. gio::read(PIN_DAT);
  151. gio::write(PIN_DAT, 0);
  152. gio::write(PIN_DAT, 1);
  153. gio::write(PIN_DAT, 0);
  154. gio::write(PIN_DAT, 1);
  155. gio::write(PIN_DAT, 0);
  156. delayMicroseconds(10);
  157. // gio mode nc
  158. gio::write(PIN_DAT, 1);
  159. gio::write(PIN_DAT, 0);
  160. gio::write(PIN_DAT, 1);
  161. gio::write(PIN_DAT, 0);
  162. gio::write(PIN_DAT, 1);
  163. gio::mode(datNC, OUTPUT);
  164. gio::write(PIN_DAT, 0);
  165. gio::write(PIN_DAT, 1);
  166. gio::write(PIN_DAT, 0);
  167. gio::write(PIN_DAT, 1);
  168. gio::write(PIN_DAT, 0);
  169. delayMicroseconds(10);
  170. // gio mode
  171. gio::write(PIN_DAT, 1);
  172. gio::write(PIN_DAT, 0);
  173. gio::write(PIN_DAT, 1);
  174. gio::write(PIN_DAT, 0);
  175. gio::write(PIN_DAT, 1);
  176. gio::mode(PIN_DAT, OUTPUT);
  177. gio::write(PIN_DAT, 0);
  178. gio::write(PIN_DAT, 1);
  179. gio::write(PIN_DAT, 0);
  180. gio::write(PIN_DAT, 1);
  181. gio::write(PIN_DAT, 0);
  182. delayMicroseconds(10);
  183. interrupts();
  184. }