CPU=ATMEGA1280
//before setup function, global value
unsigned long count32;
http://arduino.cc/en/Reference/UnsignedLong
was hoping I could use this trick for a ucn5832 32bit shift register
http://www.arduino.cc/en/Reference/Bitshift
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
...
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
...
within a function call int VoltMod(int relaycard, int value)
count32 = 1 << value;
Serial.print("value=");
Serial.println(value);
Serial.print("count32=");
Serial.println(count32);
PausePressKey();
Problem is it returns
value=16
count32=0
16 is correct
the 0 isn't working it should be 65536
which would match the #define shPin17 65536
int VoltMod(int relaycard, int value)
{
value--;
byte data = enablePinbit[1]; // fetch data from memory
//enablePin=HIGH=OFF=1 || pinvalue 15 or less return error
if(bit_get(data,relaycard) || value<15 || value>31 || value<0)
{
Serial.println();
Serial.print("value=");
Serial.println(value);
Serial.print("bit_get=");
Serial.println(bit_get(data,relaycard));
Serial.print("relaycard=");
Serial.println(relaycard);
PausePressKey();
return FALSE;
}
count32 = 1 << value;
//testing
Serial.print("value=");
Serial.println(value);
Serial.print("count32=");
Serial.println(count32);
PausePressKey();
//enable latch
digitalWrite(strobePinvoltmod, LOW);
//enables relay card
digitalWrite(enablePinvoltmod, LOW); //Enables Relay Card
//write data
shiftOut_32(dataPinvoltmod, clockPin, MSBFIRST,count32);
//disable latch
digitalWrite(strobePinvoltmod, HIGH);
return TRUE;
}