diff options
| author | 2019-04-10 15:14:00 -0400 | |
|---|---|---|
| committer | 2019-04-10 15:14:00 -0400 | |
| commit | 60699af63f92f43cc4b4b9e3050fcdd2a8468281 (patch) | |
| tree | 20a18af2774daa43ae7f4352dd032a24f7e06075 /frontends/calculator/CEdev/examples/second_counter2/src | |
| parent | 4527bc20241068731c62101d0467d416119ec0c4 (diff) | |
| download | cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.tar.gz cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.tar.bz2 cetris-60699af63f92f43cc4b4b9e3050fcdd2a8468281.zip | |
add opengl fronend, remove sdl frontend, refactor build system
Diffstat (limited to 'frontends/calculator/CEdev/examples/second_counter2/src')
| -rw-r--r-- | frontends/calculator/CEdev/examples/second_counter2/src/main.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/second_counter2/src/main.c b/frontends/calculator/CEdev/examples/second_counter2/src/main.c new file mode 100644 index 0000000..dff02f2 --- /dev/null +++ b/frontends/calculator/CEdev/examples/second_counter2/src/main.c @@ -0,0 +1,57 @@ +#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 + +/* Function Prototypes */ +void reset_counter(void); + +void main(void) { + unsigned int count = 0; + char str[10]; + + timer_1_MatchValue_1 = ONE_SECOND; + + /* Clear the homescreen */ + os_ClrHome(); + + /* Reset the counter */ + reset_counter(); + + do { + + /* Poll until we reach the match value */ + if (timer_IntStatus & TIMER1_MATCH1) { + /* Print the count */ + sprintf(str, "%u", count++); + os_SetCursorPos(0, 0); + os_PutStrFull(str); + + /* Reset the count */ + reset_counter(); + + /* Acknowledge the interrupt */ + timer_IntStatus = TIMER1_MATCH1; + } + + } while (count < 5); +} + +void reset_counter(void) { + /* 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_Counter = 0; + + /* 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_NOINT | TIMER1_UP; +} |