I am doing assignment 4a. When I try to print my balance, the display is printing letters instead of numbers. I tried printing them towards my serial monitor, however, here numbers are printed. Does anyone has an idea what is going on??
My code looks like this:
void Userinterface::printBalance(){
display->setCursor(0, 4); // goto line 4
display->print(coin);
display->print("c");
balance = controller->getBalance();
int euros = balance / 100;
int cents = balance % 100;
display->drawString(0,5,"Balance:");
snprintf(buf, sizeof(buf), "%1d", euros, cents); // put value of euros into string buffer
display->draw2x2String(0, 6, euros); // and print it
display->draw2x2String(2, 6, ".");
display->draw2x2String(4, 6, cents);
Maybe share your code for the printBalance() method here?
Do you use the example code from the assignment?:
display->drawString(0,5,"Balance:");
snprintf(buf, sizeof(buf), "%1d", euros); // put value of euros into string buffer
display->draw2x2String(0, 6, buf); // and print it
display->draw2x2String(2, 6, ".");
These 2 lines will not work properly:
snprintf(buf, sizeof(buf), "%1d", euros, cents); // put value of euros into string buffer
display->draw2x2String(0, 6, euros); // and print it
In the last line, you must use buf instead of euros.
Maybe try this:
// print value balance at line 5,6:
display->drawString(0,5,"Balance:");
snprintf(buf, sizeof(buf), "%1d", euros); // put value of euros into string buffer
display->draw2x2String(0, 6, buf); // and print it
display->draw2x2String(2, 6, ".");
snprintf(buf, sizeof(buf), "%1d", cents); // put value of count into string buffer; %2d means we have 2 decimal places
display->draw2x2String(4, 6, buf);