fix: pass char array to update_display function

The Alarm callback are a function pointer that do not seem to get
the global buffer. we change update_display to fill in a buffer
passed from outside.