diff options
Diffstat (limited to 'frontends/calculator/CEdev/examples/second_counter')
| -rw-r--r-- | frontends/calculator/CEdev/examples/second_counter/makefile | 15 | ||||
| -rw-r--r-- | frontends/calculator/CEdev/examples/second_counter/readme.md | 10 | ||||
| -rw-r--r-- | frontends/calculator/CEdev/examples/second_counter/screenshot.gif | bin | 0 -> 5999 bytes | |||
| -rw-r--r-- | frontends/calculator/CEdev/examples/second_counter/src/main.c | 43 |
4 files changed, 68 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/second_counter/makefile b/frontends/calculator/CEdev/examples/second_counter/makefile new file mode 100644 index 0000000..1f1b36b --- /dev/null +++ b/frontends/calculator/CEdev/examples/second_counter/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/second_counter/readme.md b/frontends/calculator/CEdev/examples/second_counter/readme.md new file mode 100644 index 0000000..9211916 --- /dev/null +++ b/frontends/calculator/CEdev/examples/second_counter/readme.md @@ -0,0 +1,10 @@ +### Second Counter Demo + +This demo demonstrates using the hardware timers, and makes a simple second counter + + + +--- + +This demo is a part of the C SDK Toolchain for use on the CE. + diff --git a/frontends/calculator/CEdev/examples/second_counter/screenshot.gif b/frontends/calculator/CEdev/examples/second_counter/screenshot.gif Binary files differnew file mode 100644 index 0000000..7175ab5 --- /dev/null +++ b/frontends/calculator/CEdev/examples/second_counter/screenshot.gif diff --git a/frontends/calculator/CEdev/examples/second_counter/src/main.c b/frontends/calculator/CEdev/examples/second_counter/src/main.c new file mode 100644 index 0000000..8a4ebc5 --- /dev/null +++ b/frontends/calculator/CEdev/examples/second_counter/src/main.c @@ -0,0 +1,43 @@ +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> +#include <tice.h> + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define ONE_SECOND 32768/1 +#define HALF_SECOND 32768/2 +#define QUARTER_SECOND 32768/4 + +/* Put all your code here */ +void main(void) { + unsigned seconds = 0; + char str[10]; + + /* Clear the homescreen */ + os_ClrHome(); + + /* Disable the timer so it doesn't run when we don't want it to be running */ + timer_Control = TIMER1_DISABLE; + + /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */ + timer_1_ReloadValue = timer_1_Counter = ONE_SECOND; + + /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */ + timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_0INT | TIMER1_DOWN; + + do { + /* If the timer is reloaded, we reached 0 */ + if (timer_IntStatus & TIMER1_RELOADED) { + /* Print a string */ + sprintf(str, "%u", seconds++); + os_SetCursorPos(0, 0); + os_PutStrFull(str); + + /* Acknowledge the reload */ + timer_IntAcknowledge = TIMER1_RELOADED; + } + } while (!os_GetCSC()); +} |