#include "MonochromeLib.h" #include #include #include #include "FonctionC.h" PrintV(int x, int y, int v) { char txt[10]; sprintf(txt,"%d",v); PrintMini(x,y,txt,0); } void setFps(int fpsWish) { static unsigned int fps = 0, fps_count = 0; // "static" permet de garder les valeurs en mémoire entre les différents appels do { fps = RTC_getTicks(); // on enregistre les ticks Sleep(1); // permet d'économiser de la batterie } while(fps < fps_count + fpsWish); // tant que ceux-ci ne se sont pas suffisamment écoulés fps_count = RTC_getTicks(); // on met à jour les dernières valeurs } int getDelay( int ms) { static int time=0; if(RTC_getTicks() - time > (ms / 7.8125)) // si il s'est écoulé une seconde complète { time = RTC_getTicks(); // et on se rappelle du nombre de ticks de la dernière seconde écoulée return 1; } return 0; } int mod(int a, int b) { return a % b; } int getFps() { // variables utilisées (en static, pour pouvoir garder en mémoire les valeurs) static int disp_fps=0, fps=1, time=0; if(RTC_getTicks() - time > 128) // si il s'est écoulé une seconde complète { disp_fps = fps; // alors on récupère le nombre de FPS fps = 0; // on remet à 0 le compteur time = RTC_getTicks(); // et on se rappelle du nombre de ticks de la dernière seconde écoulée } fps++; // on monte la valeur des FPS return disp_fps; } int rand_int(int max) { return rand() % max; } int rand_int_ab(int min, int max) { return rand() % (max - min) + min; } static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070}; static int (*SysCall)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode; int RTC_getTicks(void) { return (*SysCall)(0, 0, 0, 0, 0x3B); // on déclare la fonction voulue selon son numéro (ici 0x3B) } float ABS( float v) { if(v < 0) return -v; return v; } double degretorad(float v) { return v * 3.1415 / 180; } double radtodegre(float v) { return v * 180 / 3.1415; }