Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » probleme AUTO_INT_6 et V200 (5 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
LionelA Ecrit le: Jeudi 21 juillet 2005 à 06:40 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


Ben voilà pour faire une touche de quick off pour f-zero j'utilise ce code là :
unsigned char Off = 0;

DEFINE_INT_HANDLER(ON){
  ExecuteHandler(AI6);
  pokeIO(0x600003, 0xFF);
  if(!Off) off();
  else Off = 1-Off;
}


je redirige l'AUTO_INT_6 avec ca et le vieux vecteur est sauvé dans AI6

Ca marche très bien sur VTI 89 mais sur ma V200 réelle ca s'eteint puis ca ne se rallume plus (AMS 3.01)
Qu'est ce qui va pas ?

merci :)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°1   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 21 juillet 2005 à 08:12 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

C'est 0x600003, l'acknowledge de l'AI6 ?
Lionel Debroux - membre de TICT.
    
./Post n°2   Marquer comme non lu.
LionelA Ecrit le: Jeudi 21 juillet 2005 à 15:45 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


Non l'acknololedge de l'AI6 doit etre fait dans le ExecuteHandler(AI6),
le 0x600003, c'est parce que F-zero se met a ramer en revenant d'un off (une histoire de WaitStates de TI92 je me rappelle plus trop)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°3   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 21 juillet 2005 à 15:50 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Essaie de rajouter asm volatile("move.w #0x2500,%%sr":::"cc"); avant off();.
-Edité le Jeudi 21 juillet 2005 à 15:53 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°4   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 21 juillet 2005 à 16:08 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Essaie ça:
DEFINE_INT_HANDLER(ON){
  static volatile unsigned char Off = 0;
  ExecuteHandler(AI6);
  pokeIO(0x600003, 0xFF);
  Off = ~Off;
  asm volatile("move.w #0x2500,%%sr":::"cc");
  if (Off) off();
}
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°5   Marquer comme non lu.
LionelA Ecrit le: Jeudi 21 juillet 2005 à 20:24 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


repondu su IRC mais pour les autres :) :
Ca ne marche pas non plus.
Il semblerait que executer off() (c'est-à-dire asm("trap #4"); dans le handler de l'interrupt 6 fasse planter sur AMS 3.01 (en fait ca entraine un reset quand on rallume)
Dans le post 0 j'avais aussi un algo de merde accessoirement (Off restait toujours à 0)
donc pour avoir cette feature de Quick Off je vous propose le code suivant :


INT_HANDLER AI6;

static volatile unsigned char Off = 0;

DEFINE_INT_HANDLER(ON){
  ExecuteHandler(AI6);
  pokeIO(0x600003, 0xFF);
  if(!peekIO_bit (0x60001A, 1) && !Off) Off = 1; // [ON] is pressed
}


et vous testez dans votre boucle principale si Off est == à 1 pour faire off() et ensuite repasser Off à 0.

Si comme moi vous n'avez pas peur d'utiliser les interruptions alors pas besoin de mettre des checking sur Off dans votre boucle principale (surtout si vous en avez plusieurs differentes ce qui entrainerait une redondance du code qui fait off) et que vous voulez la feature du Quick Off quelque soit l'endroit de votre programme vous pouvez faire comme ceci :


INT_HANDLER AI6;
INT_HANDLER AI1;

static volatile unsigned char Off = 0;

DEFINE_INT_HANDLER(ON){
  ExecuteHandler(AI6);
  pokeIO(0x600003, 0xFF);
  if(!peekIO_bit (0x60001A, 1) && !Off) Off = 1; // [ON] is pressed
}

DEFINE_INT_HANDLER(OFF){
  ExecuteHandler(AI1);
  if(Off) off(),Off = 0;
}


Il faut bien entendu rediriger l'AI1 vers OFF une fois que vous avez redirigé l'AI1 vers DUMMY_HANDLER si vous utilisez le clavier (si vous appelez GrayOn avant ou apres n'a pas d'importance)
J'ai essayé de mettre ce code dans le handler pour l'AI5 mais il semblerait que ca ne veuille pas non plus fonctionner.

Voila :)

Et comme d'hab si vous voulez utiliser ce code dans votre projet c'est gratos tout ca etc... (voir la fin du topic sur la gestion de la memoire pour faineant)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
  :: Index » Forum Ti68K » Programmation C » probleme AUTO_INT_6 et V200 (5 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 54.1ms avec 18 requetes