I am trying to remake a project I did quite a while ago on a different microcontroller. Basicaly just emulating LOGIC ic's. Input pins are 8 and 9, output pin is 16 and connected to an LED for testing.
Does this look correct?
Does this look correct?
Code:
void setup() {
//wait a moment
delay(1000);
//setup the output pins
for(int i = 16; i <= 23; i++){
pinMode(i, OUTPUT);
}
}
void loop() {
// un-comment only one of the following to test
// gate_NOT(16,8);
// gate_AND(8, 9, 16);
// gate_OR(8, 9, 16);
// gate_NAND(8, 9, 16);
// gate_NOR(8, 9, 16);
// gate_XOR(8, 9, 16);
gate_XNOR(8, 9, 16);
}
void gate_NOT(uint8_t outPin, uint8_t inPin){
digitalWrite(outPin, !digitalRead(inPin));
}
void gate_AND(uint8_t inPin_A, uint8_t inPin_B, uint8_t outPin){
digitalWrite(outPin, digitalRead(inPin_A) & digitalRead(inPin_B));
}
void gate_OR(uint8_t inPin_A, uint8_t inPin_B, uint8_t outPin){
digitalWrite(outPin, digitalRead(inPin_A) | digitalRead(inPin_B));
}
void gate_NAND(uint8_t inPin_A, uint8_t inPin_B, uint8_t outPin){
digitalWrite(outPin, !(digitalRead(inPin_A) & digitalRead(inPin_B)));
}
void gate_NOR(uint8_t inPin_A, uint8_t inPin_B, uint8_t outPin){
digitalWrite(outPin, !(digitalRead(inPin_A) | digitalRead(inPin_B)));
}
void gate_XOR(uint8_t inPin_A, uint8_t inPin_B, uint8_t outPin){
digitalWrite(outPin, (digitalRead(inPin_A) ^ digitalRead(inPin_B)));
}
void gate_XNOR(uint8_t inPin_A, uint8_t inPin_B, uint8_t outPin){
digitalWrite(outPin, !(digitalRead(inPin_A) ^ digitalRead(inPin_B)));
}