Je voudrais bien, mais je n'arrive pas à éliminer la ligne noir en haut d'erreur. Cette ligne veut bien dire que j'utilise une fonction utilisant l'auto int5.C'est bizarre... Logiquement le code devrait fonctionner ainsi. Mais je vais essayer...
Voilà. La ligne noire, c'est parce que tu restaurais l'AI5 par l'AI3, apparemment une faute bête. Sinon, je n'ai pas tout compris de ton algo, mais j'ai corrigé la source (maintenant ça marche) puis commenté un peu. Sur VTI le max est donc de 1420 (chez moi)
// C Source File
// Created 08/08/2003; 22:05:40
#define USE_TI89 // Compile for TI-89
#define USE_TI92PLUS // Compile for TI-92 Plus
#define USE_V200 // Compile for V200
#define MIN_AMS 100 // Compile for AMS 1.00 or higher
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files
INT_HANDLER save1;
INT_HANDLER save2;
INT_HANDLER save5;
DEFINE_INT_HANDLER (myint5)
{
//Pas besoin de ton compteur...
ExecuteHandler(save5);
}
DEFINE_INT_HANDLER (myint2)
{
pokeIO (0x60001B,0);
}
void _main(void)
{
unsigned long cpu_speed=0; //N'a pas besoin d'être globale...
save1 = GetIntVec(AUTO_INT_1);
save2 = GetIntVec(AUTO_INT_2);
save5 = GetIntVec(AUTO_INT_5);
//(ci-dessous) Tu verras la différence si tu ne fais pas ça (essaie d'appuyer sur une touche ensuite)
SetIntVec(AUTO_INT_1,DUMMY_HANDLER);
SetIntVec(AUTO_INT_2,myint2);
SetIntVec(AUTO_INT_5,myint5);
while (!_keytest (RR_ESC))
{
//Début de la boucle
OSFreeTimer (USER_TIMER);
OSRegisterTimer (USER_TIMER, 1);
//Fais ce que tu veux ici (qui prend du temps, pour le benchmark)
//Fin de la boucle
cpu_speed=0;
while (OSTimerExpired (USER_TIMER)==FALSE) cpu_speed++;
printf_xy (0,0,"%lu ",cpu_speed);
}
SetIntVec(AUTO_INT_1,save1);
SetIntVec(AUTO_INT_2,save2);
SetIntVec(AUTO_INT_5,save5);
}
Valà, c'est tout.
