powerpic
Replacement board for a Casio CA-53W
/** @file backlight.c
*
* This library implements the functionality of the backlight on the powerpic.
*/
#include <xc.h>
#include "drivers/pins.h"
#include "lib/backlight.h"
#define LOG_TAG "lib.backlight"
#include "lib/logging.h"
#if (PCB_REV == 2)
// Backlight pin is RG7
# define BACKLIGHT_PORT PORTG
# define BACKLIGHT_TRIS TRISG
# define BACKLIGHT_LAT LATG
# define BACKLIGHT_ANSEL ANSELG
# define BACKLIGHT_PIN 7
#endif
signed char backlight_state = -1;
void
backlight_init (void)
{
LOG_INFO("Initializing backlight...");
// Configure backlight state to off.
backlight_state = 0;
// Set our backlight pin.
// Only rev2 of the pcb has one so this should probably be in an ifdef
pin_disable_analog(BACKLIGHT_ANSEL, BACKLIGHT_PIN);
pin_set_low(BACKLIGHT_LAT, BACKLIGHT_PIN);
pin_set_output(BACKLIGHT_TRIS, BACKLIGHT_PIN);
}
void
backlight_set (signed char state)
{
LOG_DEBUG("Setting backlight to: %i", state);
switch (state)
{
case BACKLIGHT_ON:
pin_set_high(BACKLIGHT_LAT, BACKLIGHT_PIN);
backlight_state = 1;
break;
case BACKLIGHT_OFF:
pin_set_low(BACKLIGHT_LAT, BACKLIGHT_PIN);
backlight_state = 0;
break;
case BACKLIGHT_TOGGLE:
if (backlight_state)
{
// Backlight is currently on, turn off
pin_set_low(BACKLIGHT_LAT, BACKLIGHT_PIN);
backlight_state = 0;
}
else
{
// Backlight is currently off, turn on
pin_set_high(BACKLIGHT_LAT, BACKLIGHT_PIN);
backlight_state = 1;
}
break;
}
}
signed char
backlight_get (void)
{
LOG_DEBUG("Backlight value is: %i", backlight_state);
return backlight_state;
}
// EOF //