Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define InterruptInputPin 2 // For checking if the input data is available
- #define InterruptSensorPin 3 // For checking when to send data
- #define IN0 A0
- #define IN1 A1
- #define IN2 A2
- #define IN3 A3
- #define OUT0 5
- #define OUT1 6
- #define OUT2 7
- #define OUT3 8
- volatile int ParallelInput; // The input data
- //*************************************
- void ReadParallel() //Reads input and saves it in parallelInput.
- {
- if (digitalRead(IN0) == HIGH)
- bitWrite(ParallelInput,0,1);
- else
- bitWrite(ParallelInput,0,0);
- if (digitalRead(IN1) == HIGH)
- bitWrite(ParallelInput,1,1);
- else
- bitWrite(ParallelInput,1,0);
- if (digitalRead(IN2) == HIGH)
- bitWrite(ParallelInput,2,1);
- else
- bitWrite(ParallelInput,2,0);
- if (digitalRead(IN3) == HIGH)
- bitWrite(ParallelInput,3,1);
- else
- bitWrite(ParallelInput,3,0);
- }
- //***************************************
- void WriteParallel() //Writes ParallelInput to output.
- {
- detachInterrupt(digitalPinToInterrupt(InterruptInputPin));
- digitalWrite(OUT0,bitRead(ParallelInput,0));
- digitalWrite(OUT1,bitRead(ParallelInput,1));
- digitalWrite(OUT2,bitRead(ParallelInput,2));
- digitalWrite(OUT3,bitRead(ParallelInput,3));
- attachInterrupt(digitalPinToInterrupt(InterruptInputPin),ReadParallel,RISING);
- }
- void setup() {
- pinMode(IN0,INPUT);
- pinMode(IN1,INPUT);
- pinMode(IN2,INPUT);
- pinMode(IN3,INPUT);
- pinMode(OUT0,OUTPUT);
- pinMode(OUT1,OUTPUT);
- pinMode(OUT2,OUTPUT);
- pinMode(OUT3,OUTPUT);
- attachInterrupt(digitalPinToInterrupt(InterruptInputPin),ReadParallel,RISING);
- attachInterrupt(digitalPinToInterrupt(InterruptSensorPin),WriteParallel,RISING);
- }
- void loop() {
- }
Add Comment
Please, Sign In to add comment