Sensor Watch 0.0.2
A board replacement for the classic Casio F-91W wristwatch, powered by a Microchip SAM L22 microcontroller.
Loading...
Searching...
No Matches
Functions
LED Control

This section covers functions related to the bi-color red/green LED mounted behind the LCD. More...

Functions

void watch_enable_leds (void)
 Enables the bi-color LED.
 
void watch_disable_leds (void)
 Disables the LEDs.
 
void watch_set_led_color (uint8_t red, uint8_t green)
 Sets the LED to a custom color by modulating each output's duty cycle.
 
void watch_set_led_red (void)
 Sets the red LED to full brightness, and turns the green LED off.
 
void watch_set_led_green (void)
 Sets the green LED to full brightness, and turns the red LED off.
 
void watch_set_led_yellow (void)
 Sets both red and green LEDs to full brightness.
 
void watch_set_led_off (void)
 Turns both the red and the green LEDs off.
 

Detailed Description

This section covers functions related to the bi-color red/green LED mounted behind the LCD.

The SAM L22 is an exceedingly power efficient chip, whereas the LED's are relatively power- hungry. The green LED, at full power, consumes more power than the whole chip in active mode, and the red LED consumes about twelve times as much power! The LED's should thus be used only sparingly in order to preserve battery life.

Note
Some watches use a red/blue LED instead of a red/green LED. You will be able to determine this easily when you double tap the reset button: if the pulsing bootloader LED is red, you have a red/green edition; if it is blue, you have a red/blue edition. For red/blue watches, build your project with the command make LED=BLUE, and the watch library will automatically swap the pins so that watch_set_led_red sets the red LED, and watch_set_led_green sets the blue one.

Function Documentation

◆ watch_disable_leds()

void watch_disable_leds ( void  )

Disables the LEDs.

Note
This method will also disable the buzzer, since the buzzer and LED both make use of the same peripheral to drive their PWM behavior.

◆ watch_enable_leds()

void watch_enable_leds ( void  )

Enables the bi-color LED.

Note
The TCC peripheral that drives the LEDs does not run in STANDBY mode — but the outputs do! This means that if you set either red, green or both LEDs to full power, they will shine even when your app is asleep. If, however, you set a custom color using watch_set_led_color, the color will not display correctly in STANDBY mode. You will need to keep your app running while the LED is on.

◆ watch_set_led_color()

void watch_set_led_color ( uint8_t  red,
uint8_t  green 
)

Sets the LED to a custom color by modulating each output's duty cycle.

Parameters
redThe red value from 0-255.
greenThe green value from 0-255. If your watch has a red/blue LED, this will be the blue value.
Note
If you are displaying a custom color, you will need to prevent your app from going to sleep while the LED is on; otherwise, the color will not display correctly. You can do this by returning false in your app_loop method.

◆ watch_set_led_green()

void watch_set_led_green ( void  )

Sets the green LED to full brightness, and turns the red LED off.

Of the two LED's in the RG bi-color LED, the green LED is the more power-efficient one (~0.44 mA).

Note
If your watch has a red/blue LED, this method will set the LED to blue.

◆ watch_set_led_red()

void watch_set_led_red ( void  )

Sets the red LED to full brightness, and turns the green LED off.

Of the two LED's in the RG bi-color LED, the red LED is the less power-efficient one (~4.5 mA).

◆ watch_set_led_yellow()

void watch_set_led_yellow ( void  )

Sets both red and green LEDs to full brightness.

The total current draw between the two LED's in this mode will be ~5 mA, which is more than the watch draws in any other mode. Take care not to drain the battery.

Note
If your watch has a red/blue LED, this method will set the LED to pink.