Bonjour,
voila je suis en premiere année de dut informatique, et je coince. Je fais partie d'un club robotique et un enseignant à programmer un µC qui me permet d'utiliser des classes déja toutes faites. Celle qui me pose probleme et la classe Ticker voici la méthode en question :
j'ai donc réussi a utiliser cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /** Attach a function to be called by the Ticker, specifiying the interval in micro-seconds * * @param fptr pointer to the function to be called * @param t the time between calls in micro-seconds */ void attach_us(void (*fptr)(void), timestamp_t t) { _function.attach(fptr); setup(t); }
et ca marche. Mais vu que j'ai plein de capteurs Ultrason à utiliser, branchés à des broches différentes, je me suis dis, autant faire une classe ca sera plus clair. Et la je coince. Car ma class CapteurUS j'ai une méthode generatePulse() et quand je met
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 /... différents objets et variables créent en global void CapteurUs(){ //cette fonction permet de générer un pulse pour que mon capteur Ultrason fonctionne, le code en lui meme n'est pas intéressant if(m_verrou_trig == false){ Timer_trig.start(); Pin_trig.write(1); m_verrou_trig = true; } if((Timer_trig.read_us() >= 10) and (Timer_trig.read_us() < 60)){ Pin_trig.write(0); } if(Timer_trig.read_us() >= 1000){ //on relance automatiquement une autre impulsion apres 1000µs Timer_trig.stop(); Timer_trig.reset(); m_verrou_trig2 = false; } } int main(){ Ticker T1; T1.attach_us(&CapteurUs1, 25); //...suite du code
ca ne marche pas. Je me suis renseigné et il faut mettre ca en static, or le probleme et qu'en static je n'ai plus acces au variable de ma class donc je suis coincé car ma class Capteur doit modifier la distance de l'un de ses attributs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CapteurUS C1(...); //constructeur avec différents parametres Ticker T1; T1.attach_us(&C1.generetePulse, 25)
Comment faire? j'espere que vous avez compris mon probleme.
Je suis débutant en C++ donc ne soyez pas bourrin dans vos explications sinon vous allez me perdre :'(
Merci d'avance pour vos réponses
Partager