Custom characters on HD44780
Here's a snippet I use to load custom characters on a 16x2 hd4470 lcd.
/*
@param cgramloc cgram location from 0-7
@param *data char array
@param cgrpos cgrampostion 0x00-0x07
@param x,y location coordinates
*/
void TextLCD::putCustomChar(int cgramloc, char *data,int cgrpos,int x,int y){
  writeCommand(0x40+((cgramloc&0x07)<<3)); //Set CG-RAM address
  
  for (int i=0; i<8; i++) {
    writeData(*data++);	
  }
  locate(x,y);
  writeData(cgrpos);
}
In order to printf deg celcius one has to load the symbol on the cgram address.
char degree[8] = {0x02,0x05,0x05,0x02,0x00,0x00,0x00,0x00};
lcd.putcustomChar(1,degree,0x01,12,0);
lcd.printf("C");
Please log in to post comments.

Thank you very much.
I was implementing my own but having so much trouble, even if it looks doing the same things as yours...
so this has really helped me.
Regards. Jaime.