Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Code foireux sur DS  (Lu 1184 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Mony Hors ligne
Sr. Member
****
Messages: 403


Voir le profil WWW
zOMG !!!1

« 16 Avril 2008, 23:56:50 »

Bonsoir tout le monde Azn

Alors voilà, je viens de (presque) finir mon homebrew, il s'appelle Infos-User Grabber, et a pour but de récupérer les informations de l'utilisateur du DS, et de les afficher. Je demande alors à quelqu'un de me le tester sur son DS (j'ai pas de linker, et pas de WiFiMe possible...) comme il est gentil, il le balance sur sa carte SD et le teste, les informations s'affiche 1/2 seconde et puis double écrans noirs... Je demande alors à plusieurs personnes d'essayer mon homebrew (tous de manières différentes) et toujours le même problême !

Alors voilà, je m'en remets à vous, j'ai passé quelques temps pour modifier le code, toujours sans succès, alors que l'émulation avec iDeas est parfaite !

Bref, je mets mon code et j'attends vos réponses Wink

Code:
/* InfosUser Grabber v0.0.1
    By Mony */

#include <PA9.h>

int main(void)
{

PA_Init();
PA_InitVBL();
PA_InitText(1,0);

while(1)
{

PA_OutputText(1,4,1,"InfosUser Grabber v0.1.1");

        PA_OutputText(1,0,3,"%c5DS User: %c6%s", PA_UserInfo.Name);
   
        PA_OutputText(1,0,5,"%c5Time:");
PA_OutputText(1, 5, 5, "%c6%02d/%02d/%02d", PA_RTC.Day, PA_RTC.Month, PA_RTC.Year);
        PA_OutputText(1, 5, 7, "%c6%02d:%02d  %02d secondes", PA_RTC.Hour, PA_RTC.Minutes, PA_RTC.Seconds);
   
        PA_OutputText(1,0,9,"%c5Birthday:");
PA_OutputText(1, 10, 9, "%c6%02d/%02d", PA_UserInfo.BdayDay, PA_UserInfo.BdayMonth);

PA_OutputText(1,0,11,"%c5Message:");
PA_OutputText(1, 10, 11, "%c6%s", PA_UserInfo.Message);

PA_OutputText(1,0,19,"%c5Alarm:");
PA_OutputText(1, 10, 19, "%c6%02dh%02d", PA_UserInfo.AlarmHour, PA_UserInfo.AlarmMinute);

PA_OutputText(1,0,21,"%c5Color:");
PA_OutputText(1, 10, 21, "%c6%s", PA_UserInfo.Color);

PA_WaitForVBL();

}

return 0;
}
Journalisée
Foxy Hors ligne
Full Member
***
Messages: 107


Voir le profil WWW
« Réponse #1 : 17 Avril 2008, 02:15:06 »

%c , c'est une commande speciale de PA_OutputText ?
Car en C standard c'est pour afficher un caractere et donc, ca demande un parametre. Sur un printf standard, ton code a toute les chance de planter.
Journalisée
Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3299


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #2 : 17 Avril 2008, 06:59:58 »

Désolé Foxy, ma faute, j'ai mis %c pour changer la couleur du texte, comme un boulet :/

Sinon, tu devrais foutre tous les PA_OutputText avant le le while, ça n'a aucun intérêt de faire réécrire à chaque fois. En théorie ça ne devrait pas planter, mais bon :/
Journalisée

http://www.palib.info/images/mollusK.png
Mony Hors ligne
Sr. Member
****
Messages: 403


Voir le profil WWW
zOMG !!!1

« Réponse #3 : 17 Avril 2008, 11:19:46 »

En fait, si je mets tout dans le while, ça permet de réactualiser l'heure, et puis si je le mets hors du while, ça foire pareil :/
Journalisée
Minishlink Hors ligne
Mega Member
***
Messages: 1077


Voir le profil WWW
Quand on veut, on peut !

« Réponse #4 : 17 Avril 2008, 11:37:21 »

Ça devrait fonctionner bien ça :

Code
(c):
/* InfosUser Grabber v0.0.1
   By Mony */

 
#include <PA9.h>
 
int main(void)
{
 
PA_Init();
PA_InitVBL();
PA_InitText(1,0);
 
       PA_OutputText(1,4,1,"InfosUser Grabber v0.1.1");
 
       PA_OutputText(1,0,3,"%c5DS User: %c6%s", PA_UserInfo.Name);
 
       PA_OutputText(1,0,9,"%c5Birthday:");
PA_OutputText(1, 10, 9, "%c6%02d/%02d", PA_UserInfo.BdayDay, PA_UserInfo.BdayMonth);
 
       PA_OutputText(1,0,11,"%c5Message:");
PA_OutputText(1, 10, 11, "%c6%s", PA_UserInfo.Message);
 
PA_OutputText(1,0,19,"%c5Alarm:");
PA_OutputText(1, 10, 19, "%c6%02dh%02d", PA_UserInfo.AlarmHour, PA_UserInfo.AlarmMinute);
 
PA_OutputText(1,0,21,"%c5Color:");
PA_OutputText(1, 10, 21, "%c6%s", PA_UserInfo.Color);
 
       PA_OutputText(1,0,5,"%c5Time:");
 
while(1)
{
    PA_OutputText(1, 5, 5, "%c6%02d/%02d/%02d", PA_RTC.Day, PA_RTC.Month, PA_RTC.Year);
            PA_OutputText(1, 5, 7, "%c6%02d:%02d  %02d secondes", PA_RTC.Hour, PA_RTC.Minutes, PA_RTC.Seconds);
 
    PA_WaitForVBL();
}
 
return 0;
}

Tu affiches que les trucs qui peuvent changer pendant que le homebrew est en cours de fonctionnement. Smiley
Journalisée

http://minishlink.lyokoproject.com/images/bannTH.pnghttp://www.lyokoproject.com/banlp_88x31.jpg
Mony Hors ligne
Sr. Member
****
Messages: 403


Voir le profil WWW
zOMG !!!1

« Réponse #5 : 17 Avril 2008, 13:11:45 »

On a testé de cette manière et ya toujours le même problême :/
Journalisée
Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3299


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #6 : 17 Avril 2008, 13:14:53 »

Et si tu vires les c6 pour voir, ptet un souci avec le code qui gère les couleurs ?
Journalisée

http://www.palib.info/images/mollusK.png
Kram Hors ligne
Débile en chef
*****
Messages: 385


Voir le profil WWW
Un jour j'aurais un super avatar !!!

« Réponse #7 : 17 Avril 2008, 13:52:07 »

Mollusk : C'est PAlib qui plante, pas son programme...

Si tu met des PA_WaitFor(Pad.Newpress.A); partout tu verra que le programme plante à l'affichage de la couleur favorite (PA_UserInfo.Color).
Une fonction HS ?
Journalisée

Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3299


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #8 : 17 Avril 2008, 13:59:07 »

Ahhhhh !!!

Je sais pourquoi Cheesy
C'est pas un bug de PAlib Langue La couleur renvoie une valeur, et non une chaine de caractère. Donc faire %s sur une valeur, il va chercher une chaine au mauvais endroit, et pouf, il plante Smiley. Après, pour la correspondance numéro de la couleur => nom de la couleur, il faut regarder sur dstek Smiley
Journalisée

http://www.palib.info/images/mollusK.png
The_Pimousse Hors ligne
Sr. Member
****
Messages: 347


Voir le profil
« Réponse #9 : 17 Avril 2008, 14:13:18 »

Mollusk : C'est PAlib qui plante, pas son programme...
Bien essayé  Azn
Journalisée

L'experience, c'est le nom que l'on donne a ses erreurs
Mony Hors ligne
Sr. Member
****
Messages: 403


Voir le profil WWW
zOMG !!!1

« Réponse #10 : 17 Avril 2008, 15:35:04 »

Nope, j'ai viré tous les %c, et le problème persiste. :/
Journalisée
Pouer Hors ligne
Hero Member
*****
Messages: 528


Voir le profil
Petit 1/2 en puissance :)

« Réponse #11 : 17 Avril 2008, 15:38:48 »

C'est pas ca qui plante mais comme ils ont dit tu affiche un nombre pour la couleur préféré et non un chaine de caractère il faut mettre %d a la place de %s PA_OutputText(1, 10, 21, "%c6%d", PA_UserInfo.Color);
« Dernière édition: 17 Avril 2008, 15:59:35 par Mollusk » Journalisée

http://osu.ppy.sh/stat/pouer.png
PypeBros Hors ligne
Sr. Member
****
Messages: 488


Voir le profil WWW
May the source be with you

« Réponse #12 : 17 Avril 2008, 22:35:34 »

EEh oui ... D'où les DefaultExceptionHandler et compagnie sur le "vrai hardware" Wink
Y'a même un bout de code qui permet aux débuggeurs GNU d'explorer (via wifi) le programme qui vient de se planter (ou de se lancer), de l'exécuter pas à pas, etc.

mais ma fée m'invite à aller au dodo, alors je vous raconterai tout ça un autre jour...
Journalisée

Pages: [1]   Haut de page
Imprimer

Aller à: