Go Down

Topic: Passage avec classe (Read 2 times) previous topic - next topic

barbudor

Merde, j'ai lancé un troll de la mort.
Désolé, je le ferait plus. :D



Je reviens à la charge. Avant de faire mes classe j'avais écrit:

Ah, t'as fait tes classes où ?
Moi j'étais dans l'Infanterie de Montage à Vars.
:smiley-mr-green:

Quote

Code: [Select]

#define adresseLcd 0x63

void setup() {
   Obj LCD = new Obj(adresseLcd);
      LCD.ecrire("message", 01);
}

Bon, déjà il faut que je comprenne comment faire passer mon 0x63 sans conversion. Si quelqu'un à une idée.


Je ne vois pas de problème dans le code ci-dessus
Qu’appelles tu un problème de conversion.

Par ailleurs sache que l'allocation dynamique marche très mal dans Arduino faute à la vielle chaîne de compilation utilisée.
J'ai upgradé le mien au dernier WinAVR qui n'est pas la dernière version de avr-gcc mais qui marche mieux avec les alloc dynamiques.
Apparemment l'intégration des dernières versions d'avr-gcc poserait pas mal de problème de compatibilité....

Donc je recommande fortement :
Code: [Select]

#define adresseLcd 0x63

Obj LCD(adresseLcd);

void setup() {
      LCD.ecrire("message", 01);
}

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Geeks

Ah ben voila, j'y suis arrivé 8)

Merci beaucoup.

Bon alors voila ce que ça donne vite fais...

Le .h:
Code: [Select]

#ifndef LcdI2C_h
#define LcdI2C_h

#include <Arduino.h>
#include <Wire.h>

class LcdI2C {
public:
LcdI2C(char adresseLcd);

void init();
void ecrire(char* saisie, int posEcran);
void clear();
void clearCol(int colEcran);

private:
char addrComponent;
};

#endif


Le .cpp:
Code: [Select]

#include "LcdI2C.h"

//Constructeur
LcdI2C::LcdI2C(char adresseLcd) {
addrComponent = adresseLcd;
}

/* init */
void LcdI2C::init() {
Wire.begin(); //Start bit
Wire.beginTransmission(addrComponent); //Appel carte
Wire.write((byte)0x00); //Null
Wire.write((byte)0x0C); //Effacer l'écran
Wire.write((byte)0x13); //Allumer le rétro éclairage
Wire.write((byte)0x04); //Ne pas afficher le curseur
Wire.endTransmission(); //Fin de communication I2C
}

/* ecrire */
void LcdI2C::ecrire(char* saisie, int posEcran) {
Wire.begin(); //Start bit
Wire.beginTransmission(addrComponent); //Appel carte
Wire.write((byte)0x00); //Null
Wire.write((byte)0x02); //Placer le curseur à
Wire.write(posEcran); //Numéro de matrice 1 - 80
Wire.print(saisie); //Texte sur écran
Wire.endTransmission(); //Fin de communication I2C
}


Le source :
Code: [Select]

/* INC */
#include <Wire.h>
#include <SD.h>
#include <LcdI2C.h>

/* DEFINITIONs */
#define addresseLcdI2c 0x63 //Adresse ecran LCD sur I2C

/* CREATION OBJ GLOBAUX */
LcdI2C ecran(addresseLcdI2c); //Ecran

void setup() {

Serial.begin(9600); //Port série de dépannage
Serial1.begin(9600); //Port série du modem

ecran.init(); //Initialisation

ecran.ecrire("Telecommande 433Mhz", 01); //Ecrire
ecran.ecrire("Version 1.0", 24); //Ecrire
ecran.ecrire("Bonjour", 66); //Ecrire

delay(1500);

//Initialiser la carte SD
if(initSD()) {

}
}


Bon ben maintenant que j'ai la base, il faut que je continue.

A propos, t'a vue pour écrire dans le Lcd j'ai virer le String pour un char* conseillé par un ami  XD

skywodd


Par ailleurs sache que l'allocation dynamique marche très mal dans Arduino faute à la vielle chaîne de compilation utilisée.
J'ai upgradé le mien au dernier WinAVR qui n'est pas la dernière version de avr-gcc mais qui marche mieux avec les alloc dynamiques.
Apparemment l'intégration des dernières versions d'avr-gcc poserait pas mal de problème de compatibilité....

A noter que WinAVR est désormais mort et enterré, son successeur c'est "MHV AVR tools" :
http://www.makehackvoid.com/project/mhvavrtools

Ça fait toujours plaisir d'avoir un GCC 4.7.2 au lieu d'un vieux 4.4.x :smiley-mr-green:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

barbudor


A noter que WinAVR est désormais mort et enterré, son successeur c'est "MHV AVR tools" :
http://www.makehackvoid.com/project/mhvavrtools

Ça fait toujours plaisir d'avoir un GCC 4.7.2 au lieu d'un vieux 4.4.x :smiley-mr-green:


Et tu as essayé d'upgrader l'env. Arduino avec ?
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

skywodd


Et tu as essayé d'upgrader l'env. Arduino avec ?

Pas encore mais ça ne saurait tarder :smiley-mr-green:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Go Up