blob: 8ce996e66ad6107b073ae08b401dca8d1062e376 [file] [log] [blame]
#include "UI.h"
#include "DISPLAY.h"
#include "SYSTEM.h"
#include <string.h>
static unsigned int missed_irq_counter;
button_cbk_t button_cbk;
void UI_init()
{
DISPLAY_init();
SYSTEM_register_irq(UI_button_irq_handler, IRQ_GPIO_2);
button_cbk = 0;
missed_irq_counter = 0;
}
unsigned int UI_get_missed_irqs()
{
return missed_irq_counter;
}
void UI_button_irq_handler()
{
if(button_cbk)
{
button_cbk();
}
else
{
missed_irq_counter++;
}
}
void UI_register_button_cbk(button_cbk_t cbk)
{
button_cbk = cbk;
}
void UI_write_line(char *line)
{
static char out[27];
strncpy(out, line, 26);
out[26] = '\0';
if(DISPLAY_get_line_capacity() == DISPLAY_get_line_insert_index())
DISPLAY_clear();
DISPLAY_output(out);
}