//EPOCH PROJECT 32A - TRANSMITTING DATA USING OUR OWN TRANSFER PROTOCOL //THIS IS THE TRANSMITTING CODE THAT SHOULD BE LOADED INTO CHIP-A. WE'RE GOING TO SEND PULSES OVER TO CHIP-B TO BE COUNTED. //CONNECTIONS: //CONNECT GPIO#2 ON CHIP-A TO GPIO PIN#3 ON CHIP-B (THE RECEIVER) #define pulseout 2 // THIS IS OUR OUTPUT LINE WHICH IS DEDICATED TO GPIO#2 ON CHIP-A int state = 0; // THIS IS USED IN THE senddat() FUNCTION int sendval = 0; // ALSO USED IN THE senddat() FUNCTION void setup(){ pinMode(pulseout,OUTPUT); // ASSIGN pulseout AS AN OUTPUT } void loop(){ sendval = 9; // PLACE ANY VALUE INTO THE sendval INTEGER. THIS IS THE AMOUNT OF PULSES WE'LL TRANSMIT delay(1000); // WAIT ONE SECOND senddat(); // CALL THE senddat FUNCITON TO TRANSMIT } void senddat() // THIS FUNCTION TRANSMITS THE NUMBER IN sendval OVER TO THE RECEIVER BY SENDING PULSES { state = 0; while(state == 0){ // DO THE FOLLOWING UNTIL STATE DOES NOT EQUAL 0, OR THE break; COMMAND IS USED. { pulse(); // CALL THE pulse() FUNCTION, WHICH LITERALLY JUST TURN THE OUTPUT LINE ON AND OFF ONCE. sendval = sendval - 1; // NOW THAT A PULSE HAS BEEN SENT, DECRREMENT THE VALUE IN sendval BY 1 if(sendval == 0) // IF sendval EQUALS 0, THEN THERE ARE NO MORE PULSES TO BE SENT. IF THIS IS THE CASE, FROM THIS ROUTINE. { state = 1; // THIS ENDS THE ROUTINE } } } } void pulse() // SEND A 5ms PULSE TO THE RECEIVER { digitalWrite(pulseout,HIGH); delay(5); digitalWrite(pulseout,LOW); delay(5); } // NOTES: // SEE CODE SAMPLE 32B (THE RECEIVER CODE) FOR YOUR CHALLENGES!