Tally counter

Creations

Nicolas

NEW 5 months ago

Sorunome Sorunome

Merci !

Je viens de faire un test et je pense que je ne vois pas bien comment sauvegarder la valeur avec gb.save

Voici mon code :

#include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

}

void loop() {
  while (!gb.update());
  gb.display.clear();



  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK(); 
  } 


  gb.display.print(compteur);

  gb.save.get(compteur);

}

J'ai bien ajouté gb.save.get avec la variable "compteur".

Merci pour le coup de pouce !

jicehel

NEW 5 months ago

Tu fais une erreur de fonction. Pour sauver, tu dois utiliser gb.save.set et pour lire ce que tu as sauvé, tu utilises gb.save.get

Nicolas

5 months ago

Merci pour ta réponse. En effet je pensais me tromper, mais j'ai également essayé avec gb.save.set(compteur) et cela n'a pas fonctionné. Peut-être il s'agit d'une erreur dans l'écriture du code, ou bien l'emplacement dans le void setup() ou le void loop() ?

Merci !

Nicolas

NEW 5 months ago

jicehel jicehel

Merci pour ta réponse. En effet je pensais me tromper, mais j'ai également essayé avec gb.save.set(compteur) et cela n'a pas fonctionné. Peut-être il s'agit d'une erreur dans l'écriture du code, ou bien l'emplacement dans le void setup() ou le void loop() ?

Merci !

jicehel

NEW 5 months ago

En fait tu fais une erreur. Pour gb.save.set, tu peux regarder dans les références, tu dois préciser le bloc dans lequel tu sauvegarde. Pour toi par exemple, ça pourrait donner gb.save.set(0,compteur);et pour lire, tu utilises alors compteur = gb.save.get(0);

Tu peux regarder le tuto de Sorunome si besoin sur les sauvegarde pour aller plus loin dans les sauvegardes ou pour avoir d'autres exemples (https://gamebuino.com/creations/gamebuino-save-format)

Nicolas

5 months ago

Merci, en effet je comprends un peu plus mon erreur.

Le tuto de Sorunome est très bien, mais il manque un exemple pratique simple pour les débutants :-) 

Je viens de tester mon programme avec ce code et la correction des fonctions gb.save.set et gb.save.get mais rien ne fonctionne. Quand je quitte le programme, le compteur revient toujours à 0...

include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

}

void loop() {
  while (!gb.update());
  gb.display.clear();



  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK(); 
  } 

  gb.display.setFontSize(4);
  gb.display.setCursor(10,10);
  gb.display.print(compteur);

  gb.save.set(0,compteur);
  gb.save.get(0);

}

Il y a quelque chose qui me manque pour comprendre complètement le système de sauvegarde.

Nicolas

NEW 5 months ago

jicehel jicehel

Merci, en effet je comprends un peu plus mon erreur.

Le tuto de Sorunome est très bien, mais il manque un exemple pratique simple pour les débutants :-) 

Je viens de tester mon programme avec ce code et la correction des fonctions gb.save.set et gb.save.get mais rien ne fonctionne. Quand je quitte le programme, le compteur revient toujours à 0...

include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

}

void loop() {
  while (!gb.update());
  gb.display.clear();



  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK(); 
  } 

  gb.display.setFontSize(4);
  gb.display.setCursor(10,10);
  gb.display.print(compteur);

  gb.save.set(0,compteur);
  gb.save.get(0);

}

Il y a quelque chose qui me manque pour comprendre complètement le système de sauvegarde.

jicehel

NEW 5 months ago

oui, l'erreur est normale. Tu sauve le compteur puis tu le lis.

La valeur du compteur ne change donc pas.

Ce qu'il faut que tu fasses c'est lire la dernière valeur sauvegardée quand tu ouvres ton programme (par exemple dans le setup)

Après tu sauvegarde ta valeur dans ta boucle.

Du coup au début tu charges un seule fois la dernière valeur sauvegardée et tu sauvegarde à chaque fin de boucle la valeur de ton compteur.

Si je ne m'abuse, c'est le comportement que tu attends.

Nicolas

5 months ago

Merci à toi pour tes conseils et ton sens pédagogique ! J'ai compris la procédure et ça fonctionne :-) Je vais pouvoir développer maintenant l'idée avec un compteur un peu plus complexe.

Voici mon code pour ceux que ça peut intéresser :

#include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

  compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée

}


void loop() {
  while (!gb.update());
  gb.display.clear();


  //augmenter +1 lorsque l'on appuie sur la touche UP
  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK();//un son est joué 
  } 


  gb.display.setFontSize(4);
  gb.display.setCursor(10,10);
  gb.display.print(compteur);

  gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle

}

Nicolas

NEW 5 months ago

jicehel jicehel

Merci à toi pour tes conseils et ton sens pédagogique ! J'ai compris la procédure et ça fonctionne :-) Je vais pouvoir développer maintenant l'idée avec un compteur un peu plus complexe.

Voici mon code pour ceux que ça peut intéresser :

#include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

  compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée

}


void loop() {
  while (!gb.update());
  gb.display.clear();


  //augmenter +1 lorsque l'on appuie sur la touche UP
  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK();//un son est joué 
  } 


  gb.display.setFontSize(4);
  gb.display.setCursor(10,10);
  gb.display.print(compteur);

  gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle

}

Sorunome

5 months ago

Hey, using gb.save.get and gb.save.set takes quite long, I'd recommend to use them as little as possible! Since you have gb.save.set inside of loop() it'd be called quite often. I'd recommend something like this instead:

#include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

  compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée

}


void loop() {
  while (!gb.update());
  gb.display.clear();


  //augmenter +1 lorsque l'on appuie sur la touche UP
  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK();//un son est joué 
    gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle
  }


  gb.display.setFontSize(4);
  gb.display.setCursor(10,10);
  gb.display.print(compteur);
}

As you can see it only calls gb.save.set now if the value actually changes!

Sorunome

NEW 5 months ago

Nicolas Nicolas

Hey, using gb.save.get and gb.save.set takes quite long, I'd recommend to use them as little as possible! Since you have gb.save.set inside of loop() it'd be called quite often. I'd recommend something like this instead:

#include <Gamebuino-Meta.h>

int compteur = 0;


void setup() {
  gb.begin();

  compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée

}


void loop() {
  while (!gb.update());
  gb.display.clear();


  //augmenter +1 lorsque l'on appuie sur la touche UP
  if (gb.buttons.pressed(BUTTON_UP)) {  
    compteur = compteur + 1;    
    gb.sound.playOK();//un son est joué 
    gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle
  }


  gb.display.setFontSize(4);
  gb.display.setCursor(10,10);
  gb.display.print(compteur);
}

As you can see it only calls gb.save.set now if the value actually changes!

Nicolas

5 months ago

Merci pour l'amélioration du code ! :-)

Nicolas

NEW 5 months ago

Sorunome Sorunome

Merci pour l'amélioration du code ! :-)

GeBerth

NEW 1 week ago

simple pour apprendre les boutons UP, BUTTON, RIGHT,LEFT et les opérations courantes

LoganRen

NEW 2 days ago

Merci pour ce tuto, super cool. Me suis bien amuser, j’ai été un peut plus loin pour ma part avec trois variable et trois jauge. Une pour les unités, une pour les dizaines et une pour les centaines. Il me reste des choses à finir comme faire une jauge quand les valeurs on négative, ça j’ai pas trouvé.

Je vous partagerais le code sources et le partagerais dans les créations une fois fini.

jicehel

NEW 1 day ago

Bravo Loganen. Tu as tout compris: on fait le tuto et après on le triture, on le modifie, on se fait plaisir pour faire ce que l'on veut et c'est là que l'on encre ce que l'on a appris.

You must be logged in in order to post a message on the forum

Log in