diff options
Diffstat (limited to 'frontends/calculator/CEdev/examples/keypad_arrows')
| -rw-r--r-- | frontends/calculator/CEdev/examples/keypad_arrows/autotester.json | 61 | ||||
| -rw-r--r-- | frontends/calculator/CEdev/examples/keypad_arrows/makefile | 15 | ||||
| -rw-r--r-- | frontends/calculator/CEdev/examples/keypad_arrows/readme.md | 10 | ||||
| -rw-r--r-- | frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif | bin | 0 -> 6859 bytes | |||
| -rw-r--r-- | frontends/calculator/CEdev/examples/keypad_arrows/src/main.c | 49 |
5 files changed, 135 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json b/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json new file mode 100644 index 0000000..c81becf --- /dev/null +++ b/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json @@ -0,0 +1,61 @@ +{ + "rom": "84pce_515.rom", + "transfer_files": [ + "bin/DEMO.8xp" + ], + "target": { + "name": "DEMO", + "isASM": true + }, + "sequence": [ + "action|launch", + "delay|500", + "key|down", + "hash|1", + "delay|200", + "key|right", + "hash|2", + "delay|200", + "key|up", + "hash|3", + "delay|200", + "key|left", + "hash|4", + "delay|200", + "key|2nd", + "hashWait|5" + ], + "hashes": { + "1": { + "description": "The screen is black", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "AF74BFCB" ] + }, + "2": { + "description": "The screen is red", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "D2E7DAC8" ] + }, + "3": { + "description": "The screen is white", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "3132DE74" ] + }, + "4": { + "description": "The screen is red (other)", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "74B02578" ] + }, + "5": { + "description": "Back to the home screen (exit check)", + "start": "vram_start", + "size": "vram_16_size", + "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] + } + } +} + diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/makefile b/frontends/calculator/CEdev/examples/keypad_arrows/makefile new file mode 100644 index 0000000..1f1b36b --- /dev/null +++ b/frontends/calculator/CEdev/examples/keypad_arrows/makefile @@ -0,0 +1,15 @@ +# ---------------------------- +# Set NAME to the program name +# Set ICON to the png icon file name +# Set DESCRIPTION to display within a compatible shell +# Set COMPRESSED to "YES" to create a compressed program +# ---------------------------- + +NAME ?= DEMO +COMPRESSED ?= NO +ICON ?= iconc.png +DESCRIPTION ?= "C SDK Demo" + +# ---------------------------- + +include $(CEDEV)/include/.makefile diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/readme.md b/frontends/calculator/CEdev/examples/keypad_arrows/readme.md new file mode 100644 index 0000000..698dd4e --- /dev/null +++ b/frontends/calculator/CEdev/examples/keypad_arrows/readme.md @@ -0,0 +1,10 @@ +### Keypad Arrow Key Demo + +This demo changes the color of the screen depending on which arrow keys are pressed. + + + +--- + +This demo is a part of the C SDK Toolchain for use on the CE. + diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif b/frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif Binary files differnew file mode 100644 index 0000000..7d1886c --- /dev/null +++ b/frontends/calculator/CEdev/examples/keypad_arrows/screenshot.gif diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c b/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c new file mode 100644 index 0000000..c4f7adf --- /dev/null +++ b/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c @@ -0,0 +1,49 @@ +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> +#include <tice.h> + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <keypadc.h> + +/* Function Prototypes */ +void fill_screen(uint8_t color); + +void main(void) { + /* Key variable */ + kb_key_t key; + + /* Loop until 2nd is pressed */ + do { + /* Update kb_Data */ + kb_Scan(); + + /* Load group 7 registers */ + key = kb_Data[7]; + + switch (key) { + case kb_Down: /* Change screen color to black */ + fill_screen(0x00); + break; + case kb_Right: /* Change screen color to red */ + fill_screen(0xE0); + break; + case kb_Up: /* Change screen color to white */ + fill_screen(0xFF); + break; + case kb_Left: /* Change screen color to a different red */ + fill_screen(0xC0); + break; + default: + break; + } + } while (kb_Data[1] != kb_2nd); +} + +/* Simple way to fill the screen with a given color */ +void fill_screen(uint8_t color) { + memset(lcd_Ram, color, LCD_SIZE); +} |