Bonjour

Je débute en C++ j'ai un problème : J'ai un membre m_playing, de type byte, déclaré privé dans une classe dont je ne parviens pas à modifier sa valeur via les méthodes de la classe. Il me sort toujours la valeur 192 alors que je veux la mettre à 1 ou à 0.

Pourquoi ? Où est mon erreur ?

Voici mon code (ps : Je travaille sur un arduino. Serial.println() me sert à afficher des valeurs sur mon écran via une liaison série)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
/**
 * ----------------------------------------------------
 * Ficher d'en tête de la classe
 * ----------------------------------------------------
 */
 
#ifndef RAILSDMP3_H
#define RAILSDMP3_H
 
#include <avr/pgmspace.h>
#include <Arduino.h>
#include <SD.h>
#include <railVs10xx.h>
 
class railSdMp3
{
	private : 
 
		byte	m_playing;         // Déclaration du membre.
		char*	p_trackName;
		byte	m_readLen;
 
	public :
 
		railSdMp3();
		void 	begin();
                ....
 
};
#endif RAILSDMP3_H
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
/**
 * ----------------------------------------------------
 * Ficher CPP de la classe
 * ----------------------------------------------------
 */
#include <railSdMp3.h>
 
#define SD_CS 	  	        10	// SD Chip Select pin id
#define SD_READ_BUF_LEN  	32	// taille du buffer SD > MP3
 
Sd2Card    card;
SdVolume  volume;
SdFile      	root;
SdFile      	track;
 
static byte readBuf[SD_READ_BUF_LEN];
 
/**
 * Constructeur
 */
railSdMp3::railSdMp3()
	: m_playing(0),             // j'initialise le membre avec la valeur 0
          m_readLen(0)
{}
 
 
/**
 * Init SD and VS1053
 */
void railSdMp3::begin()
{
 
	Serial.print("Affiche m_playing 1ere fois:");
	Serial.println(m_playing);                               // Il l'affiche 192 et pas 0 !!
        m_playing = 1;
	Serial.print("Affiche m_playing 2nd fois:");
	Serial.println(m_playing);                               // Il affiche 192 encore et pas 1 !!
        // .... la suite ici ...
}
 
....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
/**
 * Programme ...
 */
#include <Arduino.h>
#include <SD.h>
#include <railVs10xx.h>
#include <railSdMp3.h>
 
railSdMp3* swi01;
 
void setup()
{  
 
  Serial.begin(9600);
  delay(2000);
 
  swi01->begin();         // Affiche la valeur du membre m_playing
  ....
 
}
 
void loop()
{
   ...
}

Merci pour votre aide.