Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 7:2db895370298
- Parent:
- 6:baece3338bfe
- Child:
- 9:2f23704d4a47
--- a/main.cpp Fri May 01 06:46:08 2015 +0000
+++ b/main.cpp Fri May 01 16:17:52 2015 +0000
@@ -172,14 +172,28 @@
return (int)rint(h);
}
+bool init = false;
+void switch_mode(){
+ display_mode ++;
+ if(display_mode == 4)
+ display_mode = 1;
+
+ init = true;
+}
+
void animate(){
if(display_mode == 1)
{
- set_hfunc(&wave_height);
+ if(init){
+ freq_disp = 0;
+ freq = 4;
+ init = false;
+ set_hfunc(&wave_height);
+ }
for(int i = 3; i < WIDTH; i++){
- draw_circle(i, 4);
+ draw_circle(0, 0, i, 4, false);
}
freq_disp += 0.1;
@@ -208,56 +222,28 @@
}
else if(display_mode == 3)
{
- int g = 4;
- static bool init = false;
- static int towers[4][4];
-
- if(!init){
- set_hfunc(NULL);
- srand(time(NULL));
+ static float radius = 1;
- for(int i = 0; i < g; i++){
- for(int j = 0; j < g; j++){
- towers[i][j] = rand() % HEIGHT;
- }
- }
- init = true;
- }
-
- int f = WIDTH / g;
-
- for(int i = -g; i < g; i++){
- for(int j = -g; j < g; j++){
- int h = towers[i + g][j + g];
-
- draw_line(i*f, j*f, 0, i*f, j*f + f, 0);
- draw_line(i*f, j*f + f, 0, i*f + f, j*f + f, 0);
- draw_line(i*f + f, j*f + f, 0, i*f + f, j*f, 0);
- draw_line(i*f + f, j*f, 0, i*f, j*f, 0);
-
- draw_line(i*f, j*f, 0, i*f, j*f, h);
- draw_line(i*f + f, j*f, 0, i*f + f, j*f, h);
- draw_line(i*f, j*f + f, 0, i*f, j*f + f, h);
- draw_line(i*f + f, j*f + f, 0, i*f + f, j*f + f, h);
-
- draw_line(i*f, j*f, h, i*f, j*f + f, h);
- draw_line(i*f, j*f + f, h, i*f + f, j*f + f, h);
- draw_line(i*f + f, j*f + f, h, i*f + f, j*f, h);
- draw_line(i*f + f, j*f, h, i*f, j*f, h);
- }
- }
+ radius ++;
+ if(radius == 16)
+ radius = 0;
+
+ draw_circle(0, 0, radius, 4, true);
} else if(display_mode == 4){
- freq = 1.5;
- set_hfunc(&wave_height);
+ if(init){
+ freq_disp = 0.0;
+ freq = 2.0;
+ set_hfunc(&wave_height);
+ init = false;
+ }
-
- freq_disp += 0.05;
+ freq_disp += 0.1;
if(freq_disp >= 1.0){
freq_disp = 0.0;
}
- for(int i = -12; i < 13; i += 1){
+ for(int i = -16; i < 16; i += 2){
draw_line(i, 16, 0, i, -16, 0);
//draw_line(16, i, 0, -16, i, 0);
}
@@ -271,13 +257,16 @@
animate_i = true;
}
+Ticker switch_ticker;
+
int main (void)
{
display_mode = 4;
InterruptIn hall_pin(p25);
hall_pin.fall(&rotate_sense);
- animate_ticker.attach(&animate_int, 3.0);
+ animate_ticker.attach(&animate_int, 1.0);
+ switch_ticker.attach(&switch_mode, 15.0);
uint8_t channel = 2;