Guest User

Untitled

a guest
Oct 23rd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #define InterruptInputPin 2 // For checking if the input data is available
  2. #define InterruptSensorPin 3 // For checking when to send data
  3.  
  4. #define IN0 A0
  5. #define IN1 A1
  6. #define IN2 A2
  7. #define IN3 A3
  8.  
  9. #define OUT0 5
  10. #define OUT1 6
  11. #define OUT2 7
  12. #define OUT3 8
  13.  
  14. volatile int ParallelInput; // The input data
  15.  
  16. //*************************************
  17. void ReadParallel() //Reads input and saves it in parallelInput.
  18. {
  19. if (digitalRead(IN0) == HIGH)
  20. bitWrite(ParallelInput,0,1);
  21. else
  22. bitWrite(ParallelInput,0,0);
  23.  
  24. if (digitalRead(IN1) == HIGH)
  25. bitWrite(ParallelInput,1,1);
  26. else
  27. bitWrite(ParallelInput,1,0);
  28.  
  29. if (digitalRead(IN2) == HIGH)
  30. bitWrite(ParallelInput,2,1);
  31. else
  32. bitWrite(ParallelInput,2,0);
  33.  
  34. if (digitalRead(IN3) == HIGH)
  35. bitWrite(ParallelInput,3,1);
  36. else
  37. bitWrite(ParallelInput,3,0);
  38.  
  39. }
  40. //***************************************
  41.  
  42. void WriteParallel() //Writes ParallelInput to output.
  43. {
  44. detachInterrupt(digitalPinToInterrupt(InterruptInputPin));
  45. digitalWrite(OUT0,bitRead(ParallelInput,0));
  46. digitalWrite(OUT1,bitRead(ParallelInput,1));
  47. digitalWrite(OUT2,bitRead(ParallelInput,2));
  48. digitalWrite(OUT3,bitRead(ParallelInput,3));
  49. attachInterrupt(digitalPinToInterrupt(InterruptInputPin),ReadParallel,RISING);
  50.  
  51. }
  52.  
  53. void setup() {
  54.  
  55. pinMode(IN0,INPUT);
  56. pinMode(IN1,INPUT);
  57. pinMode(IN2,INPUT);
  58. pinMode(IN3,INPUT);
  59.  
  60. pinMode(OUT0,OUTPUT);
  61. pinMode(OUT1,OUTPUT);
  62. pinMode(OUT2,OUTPUT);
  63. pinMode(OUT3,OUTPUT);
  64. attachInterrupt(digitalPinToInterrupt(InterruptInputPin),ReadParallel,RISING);
  65.  
  66.  
  67. attachInterrupt(digitalPinToInterrupt(InterruptSensorPin),WriteParallel,RISING);
  68.  
  69. }
  70.  
  71. void loop() {
  72.  
  73. }
Add Comment
Please, Sign In to add comment