Go Down

Topic: bit a bit... (Read 1 time) previous topic - next topic

dr_no

bjr a tous;

comment a partir de l'instruction :

Code: [Select]

Serial.print("Hello world.");

puis-je recuperer "h" "e" "l" "l" "o" .. etc... et les declarer en la meme variable "n" ?    :smiley-zipper:

je veut transferer un texte "serialprinté " sur le moniteur serie d'une taille de 400 octets
donc objectif: recuperer a chaque fois la variable "n" pour incrementer et ecrire ailleur, ça je sais faire...

c'est la recuperation de la variable depuis "serial.print "qui me cause pb...  :smiley-fat:

merci a tous..

B@tto

Je pige pas : tu veux faire ça sur le PC ou sur l'arduino ? Parce que sérial.print() c'est Arduino -> PC donc rien à récupérer !

Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

dr_no

yé m'echplik :

j'ai monté une 24c01 en i2c avec mon "uno" et ça marche tres bien,
je veux modifier le programme pour envoyer mon petit fichier de 400 octets (toto.txt) sur pc dans la ram.
j'ai epluché les sequences string ,stream et autre, mais je ne trouve rien qui m'inspire pour transferer bit a bit le fichier vers la ram i2c.
j'ai manipulé moult choses en assembleur feu l'epoque des motorola, mais le c++ tout fais me rebute un peu..
je m'entraine donc a le faire avec l'eeprom de l'arduino uno pour maitriser.
ensuite pour mon appli , ça evrait etre simple...

si ça te parle ??   :smiley-roll:

B@tto

Donc si je résume : ton PC envoie une trame de 400 octets que tu veux envoyer vers la RAM reliée à l'arduino ?
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr


B@tto

Bin quand tu fais ta réception avec Serial.read(), tu lis déjà caractère par caractère. Ton code devrait ressembler à ça :
Code: [Select]

if (Serial.available){
Char Buffer[50];
int i=0;
delay(20);
while(Serial.available()) Buffer[i++] = Serial.read();
}


Chaque index de Buffer contiendra 1 caractère.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

skywodd

Bonjour,

Déja il y a un truc que je comprend pas, le CI 24C01 est une EEPROM I2C, ce n'est pas une RAM.
Pour l'écriture octet par octet (et non bits par bits, ce n'est pas la même chose) tu peut faire un truc du genre :
Code: [Select]
int i = 0; // Compteur d'octet reçu
byte data;
do {
    while(Serial.available() < 1); // Attente d'un octet sur le port série
    data = Serial.read(); // Lecture de l'octet
    ta_super_fonction_qui_ecrit_dans_leeprom(i, data); // Stockage dans l'eeprom
} while(++i < 400); // Boucle tant que l'on a pas reçu 400 octets
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

dr_no

:smiley-mr-green: woaaa !! la banane !!

un grand merci pour ces infos, effectivement l'i2c ram est une eeprom...desolé! dans l'exitation !! XD
je vais m'inspirer de vos posts , si avec ça j'y arrive pas !!
je vous dis ça... !!

Go Up