Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
12 years, 11 months ago.
converting Arduino code to C++ help
I'm using a 74HC595N shift register to save some mbed pins while trying to display multiple LED.
I'm inexperience in Arduino language. I need help coverting this Arduino code into C++ langauge. Got it from this website - http://arduino.cc/en/Tutorial/ShftOut12
(Pin connected to latch pin (ST_CP) of 74HC595)
const int latchPin = 8;
(Pin connected to clock pin (SH_CP) of 74HC595)
const int clockPin = 12;
(Pin connected to Data in (DS) of 74HC595)
const int dataPin = 11;
void setup() {
(set pins to output because they are addressed in the main loop)
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin(9600);
Serial.println("reset");
}
void loop() {
if (Serial.available() > 0) {
(ASCII '0' through '9' characters are)
(represented by the values 48 through 57.)
(so if the user types a number from 0 through 9 in ASCII,)
(you can subtract 48 to get the actual value:)
int bitToSet = Serial.read() - 48;
(write to the shift register with the correct bit set high:)
registerWrite(bitToSet, HIGH);
}
}
(This method sends bits to the shift register:)
void registerWrite(int whichPin, int whichState) {
(the bits you want to send)
byte bitsToSend = 0;
(turn off the output so the pins don't light up)
(while you're shifting bits:)
digitalWrite(latchPin, LOW);
(turn on the next highest bit in bitsToSend:)
bitWrite(bitsToSend, whichPin, whichState);
(shift the bits out:)
shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend);
(turn on the output so the LEDs can light up:)
digitalWrite(latchPin, HIGH);
}
1 Answer
12 years, 11 months ago.
DigitalOut latchPin (p??);
DigitalOut lockPin (p??);
DigitalOut DataPin (p??);
main
pc.baud (9600);
pc.printf ("reset");
while (1)
{
if (pc.avalable)
{
pc.scanf ("%i",Value);
// convert ..
registerWrite (i);
}
}
// -----------
void registerWrite (int SendMe)
{
latchPin = 0;
// SPI code,
latchPin = 1;
}
This should be a starting piont ..
Ceri
http://mbed.org/users/paul80nd/code/7SegSRDriver/ This is a driver for the 74HC595N. It may give you some hints if you can't use it directly.
posted by Stephen Paulger 08 Nov 2012