Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » RTC_getTicks() pour Graph 90+e avec gint
Palpatine_78 Hors ligne Membre Points: 264 Défis: 0 Message

RTC_getTicks() pour Graph 90+e avec gint

Posté le 23/12/2019 09:57

Bonour, je suis sur Casio graph 90+E et j'essaie de trouver un moyen de générer des nombres aléatoires. J'ai vu un tuto de Dark Storm qui date un peu, j'ai copié la fonction sensée renvoyer le nombre de ticks et ma calcularice plante à l'exécution du programme. Ce tutoriel semblant avoir été fait avec fxlib.h et sur d' anciennes calculatrices monochromes, et n'ayant pas été commenté depuis plus d'un an et demi, je crée ce topic à propos de de getTicks et plus généralement des nombres aléatoires sur gint.
J'ai fouillé les includes de gint et je n'ai pas trouvé de getTicks, mais une fonction "rtc_get_time", qui renvoie le même nombre à chaque exécution
Existe-t-il un nouveau syscall pour getTicks? Ou bien serais-ce moi qui ne saurais pas utiliser celui du tuto, et qui serais ?


Lephenixnoir En ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 23/12/2019 10:16 | #


Tu as bien rtc_get_time(), qui ne renvoie pas la même valeur à chaque exécution (?) mais bien l'heure actuelle qui augmente toutes les secondes.

Sinon tu peux aller chercher le ticks directement :

#include <gint/mpu/rtc.h>

int rtc_get_ticks(void)
{
    if(isSH3()) return SH7705_RTC.R64CNT;
    else return SH7305_RTC.R64CNT;
}

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Palpatine_78 Hors ligne Membre Points: 264 Défis: 0 Message

Citer : Posté le 23/12/2019 10:25 | #


Merci beaucoup.
Concernant rtc_get_time, je me suis trompé dans l'utilisation...
Yatis En ligne Membre Points: 581 Défis: 0 Message

Citer : Posté le 23/12/2019 10:27 | #


Les syscalls concernant la RTC diffèrent entre la Graph90+e et la Graph35+.
Voilà la liste des appels système fourni par Casio pour la RTC :
* 0x02BF : void RTC_Reset(unsigned int mode)
* 0x02C0 : void RTC_GetTime(unsigned int*hour, unsigned int*minute, unsigned int*second, unsigned int*millisecond)
* 0x02C1 : int RTC_GetTicks(void)
* 0x02C2 : int RTC_Elapsed_ms(int start_value, int duration_in_ms)
* 0x11DD : void RTC_TriggerAlarm(void)
* 0x11DE : void RTC_SetDateTime(unsigned char timestr[7])
* 0x11E2 : void RTC_GetDateTime(unsigned char timestr[8])
Je te conseille de regarder la documentation de SimLo à ce sujet
Lephenixnoir En ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 23/12/2019 10:42 | #


Je précise que l'utilisation de syscalls avec gint est safe pour une certaine classe de syscalls et complètement imprévisible pour le reste. Ici tout marchera probablement sauf l'alarme. Mais de façon générale, mieux vaut utiliser ce qui est implémenté dans la lib, qui abstrait SH3 vs SH4, Graph mono versus Graph 90, et les problèmes d'interruptions qui peuvent se poser.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Calamari Hors ligne Membre Points: 391 Défis: 0 Message

Citer : Posté le 15/09/2024 22:51 | #


This has changed a little since 2019. Now you use rtc_ticks():
#include <stdint.h>
#include <gint/rtc.h>

uint32_t seed = rtc_ticks();

For example:
static uint32_t rng_state;

static uint32_t xorshift32(void)
{
    while (rng_state == 0)
        rng_state = rtc_ticks();

    uint32_t x = rng_state;
    x ^= x << 13;
    x ^= x >> 17;
    x ^= x << 5;
    rng_state = x;
    return x;
}

“Remember to have fun doing this, or it ain't worth it.” — Robert Alan Koeneke
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 91 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