Posté le 01/05/2014 21:07
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 198 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 01/05/2014 21:07 | #
C'est les syscalls RTC.
Citer : Posté le 01/05/2014 21:12 | #
Ça veut dire qu'en réglant avec RTC_SetDateTime une fois, après si tu appelles RTC_GetTime, il te ressort l'heure exact par rapport a l'heure donné au début ?
mais il faut mettre quoi dans la chaine data ?
Citer : Posté le 01/05/2014 21:13 | #
C'est un tableau de pointeurs sur les données (de mémoire).
C'est détaillé dans la doc.
Ajouté le 01/05/2014 à 21:13 :
Ici, la doc.
Dans le pdf.
Citer : Posté le 01/05/2014 21:50 | #
Je déplace dans "Autres questions" (ex-"Questions diverses", lui-même ex-"Problèmes avec un programme ou de programmation"). N'hésitez pas à laisser un commentaire sur les nouveaux noms des forums, je cherche à les rendre plus clairs et explicites.
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother
>>> Random Youtube Video
Citer : Posté le 01/05/2014 21:54 | #
Merci Totoyo
donc je fait face a un probleme, je sais pas bien utiliser les syscalls
J'ai tenté de faire tourner ca:
#include <stdio.h>
#include <stdlib.h>
// PROTO FONCTIONS
int RTC_getTicks();
int SYS_call();
int RTC_getTime(unsigned int *hours, unsigned int *mins, unsigned int *secs, unsigned int *msecs);
// VARIABLES
static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070}; // déclaration des adresses
static int (*SysCall)(int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode; // et des registres (en global)
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
unsigned int hours, mins, secs, msecs;
char buffer[60];
Bdisp_AllClr_DDVRAM();
RTC_getTicks();
RTC_getTime(&hours, &mins, &secs, &msecs);
sprintf(buffer, "%d-%d-%d", hours, mins, secs);
PrintMini(1,1,buffer,0);
while(1){
GetKey(&key);
}
return 1;
}
int RTC_getTicks()
{
return (*SysCall)(0, 0, 0, 0, 0x3B); // on déclare la fonction voulue selon son numéro (ici 0x3B)
}
int RTC_getTime(unsigned int *hours, unsigned int *mins, unsigned int *secs, unsigned int *msecs)
{
return (*SysCall)(0, 0, 0, 0, 0x03A);
}
int SYS_call(void)
{
return (*SysCall)(0, 0, 0, 0, 0x42);
}
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum){return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
#pragma section
Et ca m'a retourné un SE
Citer : Posté le 01/05/2014 21:57 | #
Ça doit être sur le syscall RTC_getTime. Mets-le en commentaire pour voir ?
Citer : Posté le 01/05/2014 22:02 | # |
Fichier joint
bon c'est un peu barbare mais la doc est protégée
Citer : Posté le 01/05/2014 22:05 | #
Non, c'est juste que ce sont des images.
Ah oui, int RTC_getTime !
Tu est sûr que tu as lu la documentation ?
Citer : Posté le 01/05/2014 22:12 | #
Je comprend pas
Citer : Posté le 01/05/2014 22:15 | #
Ben, c'est void RTC_getTime(...); !
Citer : Posté le 01/05/2014 22:20 | #
Si je mets void: (E) Void function returns value
Citer : Posté le 01/05/2014 22:21 | #
Oui, parce que dans le code de ta fonction tu as mis return.
Enlève-le.
Citer : Posté le 01/05/2014 22:34 | #
Toujours le SE
Citer : Posté le 01/05/2014 22:39 | #
Quel est le nouveau code ?
Et à quoi correspond SYS_Call ?
Citer : Posté le 01/05/2014 22:58 | #
Le nouveau code est
#include <stdio.h>
#include <stdlib.h>
// PROTO FONCTIONS
int RTC_getTicks();
int SYS_call();
void RTC_getTime(unsigned int *hours, unsigned int *mins, unsigned int *secs, unsigned int *msecs);
// VARIABLES
static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070}; // déclaration des adresses
static int (*SysCall)(int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode; // et des registres (en global)
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
unsigned int hours, mins, secs, msecs;
char buffer[60];
Bdisp_AllClr_DDVRAM();
RTC_getTicks();
RTC_getTime(&hours, &mins, &secs, &msecs);
sprintf(buffer, "%d-%d-%d", hours, mins, secs);
PrintMini(1,1,buffer,0);
while(1){
GetKey(&key);
}
return 1;
}
int RTC_getTicks()
{
return (*SysCall)(0, 0, 0, 0, 0x3B); // on déclare la fonction voulue selon son numéro (ici 0x3B)
}
void RTC_getTime(unsigned int *hours, unsigned int *mins, unsigned int *secs, unsigned int *msecs)
{
(*SysCall)(0, 0, 0, 0, 0x03A);
}
int SYS_call(void)
{
return (*SysCall)(0, 0, 0, 0, 0x42);
}
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum){return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
#pragma section
Après j'ai copié l'exemple de de dans le tuto " maitriser le temps donc je sais pas a quoi ça correspond
Citer : Posté le 01/05/2014 23:04 | #
C'est bien l'appel de RTC_getTime() qui génère cette erreur.
Je vais essayer de regarder ce qu'on a dans la doc.
Ajouté le 01/05/2014 à 23:15 :
Bizarre, je n'arrive pas non plus à utiliser le syscall setDateTime().
Citer : Posté le 02/05/2014 10:55 | #
t'as oublié (je crois) syscall.h
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Citer : Posté le 02/05/2014 11:04 | #
Il n'y en a pas besoin, puisqu'il a déclaré ses protoypes.
Justement, syscall.h contient les define et le (*SysCall) qui sont définis en haut.
Pour preuve, le syscall RTC_getTicks() fonctionne bien.
Citer : Posté le 03/05/2014 10:58 | #
mais le problème, c'est que le syscall n'est plus valide en SH4, si ?
Je suis de l'autre coté de la manche maintenant. Yay.
Citer : Posté le 03/05/2014 11:03 | #
Ça se pourrait... mais c'est invraisemblable, ça reste un syscall primaire du sytème RTC.
C'est juste une idée de ta part, ou y a-t-il une source particulière (si oui, laquelle) ?