-
Notifications
You must be signed in to change notification settings - Fork 250
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for Sensor Watch Pro (#412)
* Sensor Watch Pro board definition * Disable hot-plugging on SWCLK * Add rainbow test * Move interrupt mapping to board config * New color definition for Pro boards in makefile
- Loading branch information
1 parent
89a2af9
commit d98d14d
Showing
15 changed files
with
282 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#include <stdio.h> | ||
#include <string.h> | ||
#include "watch.h" | ||
|
||
void app_init(void) { | ||
} | ||
|
||
void app_wake_from_backup(void) { | ||
} | ||
|
||
void app_setup(void) { | ||
watch_enable_leds(); | ||
} | ||
|
||
void app_prepare_for_standby(void) { | ||
} | ||
|
||
void app_wake_from_standby(void) { | ||
} | ||
|
||
bool app_loop(void) { | ||
static uint8_t red = 0; | ||
static uint8_t green = 0; | ||
static uint8_t blue = 255; | ||
static uint8_t phase = 0; | ||
|
||
switch (phase) { | ||
case 0: | ||
red++; | ||
if (red == 255) phase = 1; | ||
break; | ||
case 1: | ||
green++; | ||
if (green == 255) phase = 2; | ||
break; | ||
case 2: | ||
red--; | ||
if (red == 0) phase = 3; | ||
break; | ||
case 3: | ||
blue++; | ||
if (blue == 255) phase = 4; | ||
break; | ||
case 4: | ||
green--; | ||
if (green == 0) phase = 5; | ||
break; | ||
case 5: | ||
red++; | ||
if (red == 255) phase = 6; | ||
break; | ||
case 6: | ||
blue--; | ||
if (blue == 0) { | ||
phase = 1; | ||
} | ||
break; | ||
} | ||
|
||
watch_set_led_color_rgb(red, green, blue); | ||
delay_ms(2); | ||
|
||
return false; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
TOP = ../../.. | ||
include $(TOP)/make.mk | ||
|
||
INCLUDES += \ | ||
-I../ | ||
|
||
SRCS += \ | ||
../app.c | ||
|
||
include $(TOP)/rules.mk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
#ifndef PINS_H_INCLUDED | ||
#define PINS_H_INCLUDED | ||
|
||
// Detects if we are on USB power. | ||
#define VBUS_DET GPIO(GPIO_PORTB, 5) | ||
|
||
// Buttons | ||
#define BTN_ALARM GPIO(GPIO_PORTA, 2) | ||
#define WATCH_BTN_ALARM_EIC_CHANNEL 2 | ||
#define BTN_LIGHT GPIO(GPIO_PORTA, 30) | ||
#define WATCH_BTN_LIGHT_EIC_CHANNEL 10 | ||
#define BTN_MODE GPIO(GPIO_PORTA, 31) | ||
#define WATCH_BTN_MODE_EIC_CHANNEL 11 | ||
|
||
// Buzzer | ||
#define BUZZER GPIO(GPIO_PORTA, 27) | ||
#define WATCH_BUZZER_TCC_PINMUX PINMUX_PA27F_TCC0_WO5 | ||
#define WATCH_BUZZER_TCC_CHANNEL 1 | ||
|
||
// LEDs | ||
#define WATCH_INVERT_LED_POLARITY | ||
|
||
#define RED GPIO(GPIO_PORTA, 12) | ||
#define WATCH_RED_TCC_CHANNEL 2 | ||
#define WATCH_RED_TCC_PINMUX PINMUX_PA12F_TCC0_WO6 | ||
|
||
#define BLUE GPIO(GPIO_PORTA, 13) | ||
#define WATCH_BLUE_TCC_CHANNEL 3 | ||
#define WATCH_BLUE_TCC_PINMUX PINMUX_PA13F_TCC0_WO7 | ||
|
||
#define GREEN GPIO(GPIO_PORTA, 22) | ||
#define WATCH_GREEN_TCC_CHANNEL 0 | ||
#define WATCH_GREEN_TCC_PINMUX PINMUX_PA22F_TCC0_WO4 | ||
|
||
// Segment LCD | ||
#define SLCD0 GPIO(GPIO_PORTB, 6) | ||
#define SLCD1 GPIO(GPIO_PORTB, 7) | ||
#define SLCD2 GPIO(GPIO_PORTB, 8) | ||
#define SLCD3 GPIO(GPIO_PORTB, 9) | ||
#define SLCD4 GPIO(GPIO_PORTA, 5) | ||
#define SLCD5 GPIO(GPIO_PORTA, 6) | ||
#define SLCD6 GPIO(GPIO_PORTA, 7) | ||
#define SLCD7 GPIO(GPIO_PORTA, 8) | ||
#define SLCD8 GPIO(GPIO_PORTA, 9) | ||
#define SLCD9 GPIO(GPIO_PORTA, 10) | ||
#define SLCD10 GPIO(GPIO_PORTA, 11) | ||
#define SLCD11 GPIO(GPIO_PORTB, 11) | ||
#define SLCD12 GPIO(GPIO_PORTB, 12) | ||
#define SLCD13 GPIO(GPIO_PORTB, 13) | ||
#define SLCD14 GPIO(GPIO_PORTB, 14) | ||
#define SLCD15 GPIO(GPIO_PORTB, 15) | ||
#define SLCD16 GPIO(GPIO_PORTA, 14) | ||
#define SLCD17 GPIO(GPIO_PORTA, 15) | ||
#define SLCD18 GPIO(GPIO_PORTA, 16) | ||
#define SLCD19 GPIO(GPIO_PORTA, 17) | ||
#define SLCD20 GPIO(GPIO_PORTA, 18) | ||
#define SLCD21 GPIO(GPIO_PORTA, 19) | ||
#define SLCD22 GPIO(GPIO_PORTB, 16) | ||
#define SLCD23 GPIO(GPIO_PORTB, 17) | ||
#define SLCD24 GPIO(GPIO_PORTA, 20) | ||
#define SLCD25 GPIO(GPIO_PORTA, 21) | ||
#define SLCD26 GPIO(GPIO_PORTA, 23) | ||
// This board uses a slightly different pin mapping from the standard watch, and it's not enough to | ||
// just declare the pins. We also have to set the LCD Pin Enable register with the SLCD pins we're | ||
// using. These numbers are not port/pin numbers, but the "SLCD/LP[x]" numbers in the pinmux table. | ||
// If not defined in pins.h, the LCD driver will fall back to the pin mapping in hpl_slcd_config.h. | ||
// LPENL is for pins SLCD/LP[0..31]. | ||
#define CONF_SLCD_LPENL (\ | ||
(uint32_t)1 << 0 | \ | ||
(uint32_t)1 << 1 | \ | ||
(uint32_t)1 << 2 | \ | ||
(uint32_t)1 << 3 | \ | ||
(uint32_t)1 << 5 | \ | ||
(uint32_t)1 << 6 | \ | ||
(uint32_t)1 << 7 | \ | ||
(uint32_t)1 << 11 | \ | ||
(uint32_t)1 << 12 | \ | ||
(uint32_t)1 << 13 | \ | ||
(uint32_t)1 << 14 | \ | ||
(uint32_t)1 << 21 | \ | ||
(uint32_t)1 << 22 | \ | ||
(uint32_t)1 << 23 | \ | ||
(uint32_t)1 << 24 | \ | ||
(uint32_t)1 << 25 | \ | ||
(uint32_t)1 << 30 | \ | ||
(uint32_t)1 << 31 | 0) | ||
// LPENH is for pins SLCD/LP[32..51], where bit 0 represents pin 32. | ||
#define CONF_SLCD_LPENH (\ | ||
(uint32_t)1 << (32 - 32) | \ | ||
(uint32_t)1 << (33 - 32) | \ | ||
(uint32_t)1 << (34 - 32) | \ | ||
(uint32_t)1 << (35 - 32) | \ | ||
(uint32_t)1 << (42 - 32) | \ | ||
(uint32_t)1 << (43 - 32) | \ | ||
(uint32_t)1 << (48 - 32) | \ | ||
(uint32_t)1 << (49 - 32) | \ | ||
(uint32_t)1 << (51 - 32) | 0) | ||
|
||
|
||
// 9-pin connector | ||
#define A0 GPIO(GPIO_PORTB, 4) | ||
#define WATCH_A0_EIC_CHANNEL 4 | ||
#define A1 GPIO(GPIO_PORTB, 1) | ||
#define WATCH_A1_EIC_CHANNEL 1 | ||
#define A2 GPIO(GPIO_PORTB, 2) | ||
#define WATCH_A2_EIC_CHANNEL 2 | ||
#define A3 GPIO(GPIO_PORTB, 3) | ||
#define WATCH_A3_EIC_CHANNEL 3 | ||
#define A4 GPIO(GPIO_PORTB, 0) | ||
#define WATCH_A4_EIC_CHANNEL 0 | ||
#define SDA GPIO(GPIO_PORTB, 30) | ||
#define SCL GPIO(GPIO_PORTB, 31) | ||
|
||
// aliases for as A3/A4; these were mentioned as D0/D1 in early documentation. | ||
#define D0 GPIO(GPIO_PORTB, 3) | ||
#define D1 GPIO(GPIO_PORTB, 0) | ||
|
||
// interrupt mapping | ||
#define EXT_IRQ_AMOUNT 6 | ||
#define CONFIG_EIC_EXTINT_MAP {0, PIN_PB00}, {1, PIN_PB01}, {2, PIN_PA02}, {3, PIN_PB03}, {10, PIN_PA30}, {11, PIN_PA31}, | ||
|
||
#endif // PINS_H_INCLUDED |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.