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.
Partager