powerpic
Replacement board for a Casio CA-53W
/** @file display_etc.c
*
* Display library for PowerOS
*
* Functions related to displays that don't contain characters.
*/
#include "drivers/lcd.h"
#include "lib/display.h"
#include "lib/display/display_priv.h"
//////////////////////////////////////////////////////////////////////////////
// Punctuation
void
display_period (signed char position)
{
if (0 > position)
{
position += LCD_PERIOD_SEGMENTS + 1;
}
if (0 < position)
{
lcd_period_draw((unsigned char)position);
}
else
{
// 0 - set all periods
for (; position <= LCD_PERIOD_SEGMENTS; position++)
{
lcd_period_draw((unsigned char)position);
}
}
display_needs_update = 1;
}
void
display_period_clear (signed char position)
{
if (0 > position)
{
position += LCD_PERIOD_SEGMENTS + 1;
}
if (0 < position)
{
lcd_period_clear((unsigned char)position);
}
else
{
// 0 - clear all periods
for (; position <= LCD_PERIOD_SEGMENTS; position++)
{
lcd_period_clear((unsigned char)position);
}
}
display_needs_update = 1;
}
//////////////////////////////////////////////////////////////////////////////
// Arithmetic signs
void display_sign (signed char position)
{
if (0 > position)
{
position += LCD_SIGN_SEGMENTS + 1;
}
if (0 < position)
{
lcd_sign_draw((unsigned char)position);
}
else
{
// 0 - set all sign segments
for (; position <= LCD_SIGN_SEGMENTS; position++)
{
lcd_sign_draw((unsigned char)position);
}
}
display_needs_update = 1;
}
void display_sign_clear (signed char position)
{
if (0 > position)
{
position += LCD_SIGN_SEGMENTS + 1;
}
if (0 < position)
{
lcd_sign_clear((unsigned char)position);
}
else
{
// 0 - clear all sign segments
for (; position <= LCD_SIGN_SEGMENTS; position++)
{
lcd_sign_clear((unsigned char)position);
}
}
display_needs_update = 1;
}
//////////////////////////////////////////////////////////////////////////////
// Miscellaneous segments (Alarm indicators, AM/PM indicators)
void display_misc (signed char position)
{
if (0 > position)
{
position += LCD_MISC_SEGMENTS + 1;
}
if (0 < position)
{
lcd_misc_draw((unsigned char)position);
}
else
{
// 0 - set all misc segments
for (; position <= LCD_MISC_SEGMENTS; position++)
{
lcd_misc_draw((unsigned char)position);
}
}
display_needs_update = 1;
}
void display_misc_clear (signed char position)
{
if (0 > position)
{
position += LCD_MISC_SEGMENTS + 1;
}
if (0 < position)
{
lcd_misc_clear((unsigned char)position);
}
else
{
// 0 - clear all misc segments
for (; position <= LCD_MISC_SEGMENTS; position++)
{
lcd_misc_clear((unsigned char)position);
}
}
display_needs_update = 1;
}
// EOF //