Thanks for the quick reply, I figured it out. It was returning but I left the outputs to HIGH between the calls so it looked like it didn't change. Here's the code for reference with all my test code still in it.
// Variables Constant
const int fan = 10;
const int heat = 11;
const int speak = A0;
const int enter = 2;
const int hourDial = A1;
const int minuteDial = A2;
const int cancel = 3;
const int one = 4;
const int two = 5;
const int four = 6;
const int eight = 7;
const int sixteen = 8;
const int thirtytwo = 9;
int call;
// Variables Change
void setup() {
// put your setup code here, to run once:
pinMode(fan, OUTPUT);
pinMode(heat, OUTPUT);
pinMode(speak, OUTPUT);
pinMode(enter, INPUT);
pinMode(hourDial, INPUT);
pinMode(minuteDial, INPUT);
pinMode(cancel, INPUT);
pinMode(one, OUTPUT);
pinMode(two, OUTPUT);
pinMode(four, OUTPUT);
pinMode(eight, OUTPUT);
pinMode(sixteen, OUTPUT);
pinMode(thirtytwo, OUTPUT);
digitalWrite(one, LOW);
digitalWrite(two, LOW);
digitalWrite(four, LOW);
digitalWrite(eight, LOW);
digitalWrite(sixteen, LOW);
digitalWrite(thirtytwo, LOW);
digitalWrite(fan, LOW);
digitalWrite(heat, LOW);
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
display(63);
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
display(14);
}
void loop() {
// put your main code here, to run repeatedly:
}
void display(int value){
digitalWrite(thirtytwo, LOW);
digitalWrite(sixteen, LOW);
digitalWrite(eight, LOW);
digitalWrite(four, LOW);
digitalWrite(two, LOW);
digitalWrite(one, LOW);
if (value <= 63) {
if ((value / 32) >= 1){
digitalWrite(thirtytwo, HIGH);
value -= 32;
}
digitalWrite(13, HIGH);
delay(100);
if ((value / 16) >= 1) {
digitalWrite(sixteen, HIGH);
value -= 16;
}
delay(100);
if ((value / 8) >= 1) {
digitalWrite(eight, HIGH);
value -= 8;
}
delay(100);
if ((value / 4) >= 1) {
digitalWrite(four, HIGH);
value -= 4;
}
delay(100);
if ((value / 2) >= 1) {
digitalWrite(two, HIGH);
value -= 2;
}
delay(100);
if ((value / 1) >= 1) {
digitalWrite(one, HIGH);
value -= 1;
}
}
digitalWrite(13,LOW);
return;
}