diff --git a/firmware/applications/mandelbrot2.c b/firmware/applications/mandelbrot2.c deleted file mode 100644 index 1130992..0000000 --- a/firmware/applications/mandelbrot2.c +++ /dev/null @@ -1,192 +0,0 @@ -#include - -#include "basic/basic.h" - -#include "lcd/render.h" -#include "lcd/display.h" -#include "lcd/allfonts.h" - -#define FIXSIZE 25 -#define mul(a,b) ((((long long)a)*(b))>>FIXSIZE) -#define fixpt(a) ((long)(((a)*(1<>FIXSIZE) - -#define ZOOM_RATIO 0.90 -#define ITERATION_MAX 150 - -void blink(){ - gpioSetValue (RB_LED1, CFG_LED_OFF); - delayms(100); - gpioSetValue (RB_LED1, CFG_LED_ON); - delayms(100); - gpioSetValue (RB_LED1, CFG_LED_OFF); -} - -struct mb { - long rmin, rmax, imin, imax; - bool dirty, dup, ddown, dleft, dright; -} mandel; - -void mandelInit() { - //mandel.rmin = -2.2*0.9; - //mandel.rmax = 1.0*0.9; - //mandel.imin = -2.0*0.9; - //mandel.imax = 2.0*0.9; - mandel.rmin = fixpt(-2); - mandel.rmax = fixpt(1); - mandel.imin = fixpt(-2); - mandel.imax = fixpt(2); - - mandel.dirty = true; - mandel.dup = false; - mandel.ddown = false; - mandel.dleft = false; - mandel.dright = false; -} - -void mandelMove() { - //long delta_r = (mandel.rmax - mandel.rmin)/10; - //long delta_i = (mandel.imax - mandel.imin)/10; - - long rs =(mandel.rmax-mandel.rmin)/RESY; - long is =(mandel.imax-mandel.imin)/RESX; - - char key = getInputRaw(); - - if (key == BTN_LEFT) { - mandel.imax -=is; - mandel.imin -=is; - mandel.dleft = true; - } else if (key == BTN_RIGHT) { - mandel.imax += is; - mandel.imin += is; - mandel.dright = true; - } else if (key == BTN_DOWN) { - mandel.rmax += rs; - mandel.rmin += rs; - mandel.ddown = true; - } else if (key == BTN_UP) { - mandel.rmax -= rs; - mandel.rmin -= rs; - mandel.dup = true; - } else if (key == (BTN_ENTER + BTN_UP)) { - mandel.imin = mandel.imin + (mandel.imax-mandel.imin)/10; - mandel.imax = mandel.imax - (mandel.imax-mandel.imin)/10; - mandel.rmin = mandel.rmin +(mandel.rmax-mandel.rmin)/10; - mandel.rmax = mandel.rmax -(mandel.rmax-mandel.rmin)/10; - mandel.dirty = true; - } else if (key == (BTN_ENTER + BTN_DOWN)) { - mandel.imin = mandel.imin - (mandel.imax-mandel.imin)/10; - mandel.imax = mandel.imax + (mandel.imax-mandel.imin)/10; - mandel.rmin = mandel.rmin -(mandel.rmax-mandel.rmin)/10; - mandel.rmax = mandel.rmax +(mandel.rmax-mandel.rmin)/10; - mandel.dirty = true; - } -} - -void mandelPixel(int x, int y) { - long r0,i0,rn, p,q; - long rs,is; - int iteration; - - rs=(mandel.rmax-mandel.rmin)/RESY; - is=(mandel.imax-mandel.imin)/RESX; - //p=fixpt(mandel.rmin+y*rs); - //q=fixpt(mandel.imin+x*is); - p=mandel.rmin+y*rs; - q=mandel.imin+x*is; - - rn=0; - r0=0; - i0=0; - iteration=0; - while ((mul(rn,rn)+mul(i0,i0))1); - lcdSetPixel(x, y, pixel); -} - -void mandelUpdate() { - int xmin,xmax,ymin,ymax; - if (mandel.dirty) { - xmin = 0; - xmax = RESX; - ymin = 0; - ymax = RESY; - mandel.dirty = false; - } else if (mandel.dleft) { - lcdShift(1,0,false); - xmin = 0; - xmax = 1; - ymin = 0; - ymax = RESY; - mandel.dleft = false; - } else if (mandel.dright) { - lcdShift(-1,0,false); - xmin = RESX-1; - xmax = RESX; - ymin = 0; - ymax = RESY; - mandel.dright = false; - } else if (mandel.dup) { - lcdShift(0,-1,true); - xmin=0; - xmax=RESX; - ymin=0; - ymax=1; - mandel.dup = false; - } else if (mandel.ddown) { - lcdShift(0,1,true); - xmin=0; - xmax=RESX; - ymin=RESY-1; - ymax=RESY; - mandel.ddown = false; - } else { - return; - } - - for (int x = xmin; x50){ - toggle=1-toggle; - foo=0; - gpioSetValue (RB_LED0, toggle); - }; - - return; -};