Show Posts
Pages: 1 ... 40 41 [42] 43 44 ... 94
616  International / Français / Re: Comment incrémenter ceci 0x0100 on: September 27, 2013, 02:07:19 am
Si tu avais su, tu te serais mis à boire plus tôt. smiley-lol

Alors oui, pourquoi pour qui et comment? peut-être que #define (qui n'a comme fonction que de remplacer l'identifiant par la valeur dans tout ton programme avant compilation) fait se mélanger des byte et des words, et je sais que par moments si on n'y pense pas assez, un word multiplié par un byte sera retenu comme byte, et qu'à la lecture du word, l'otcet de poids faible sera le byte calculé, et l'otcet de poids fort la case mémoire suivante qui sera peut-être occupée par autre chose, mais là, le µP s'en contre-fout, il lit quand même. ou l'inverse, enfin je me comprends...

Ce qui compte, c'est que tu as trouvé une parade, alors restons dessus et félicitations!

Sinon, pourquoi word au lieu de unsigned int? parce que que l'on écrive "word", "unsigned int", "uint16_t" ou "uint16", c'est exactement la même chose. Le core arduino comprend des milliers de #define qui se redéfinissent entre eux... Puis il y a 20 ans, à l'école on ne m'a parlé que de byte (octet) et word (un mot de deux octets) quand on jouait à programmer des 68HC11. Du coup, j'ai gardé ces définitions qui sont bien plus claires pour moi-même...
617  International / Français / Re: Un bip genre micro-onde. on: September 27, 2013, 12:58:26 am
en effet, lucratif = gagner du pognon. alors qu'il vaut mieux rester d'ans l'optique arduino = ludique... c'est peut-être ce que tu voulais dire?
618  International / Français / Re: Bogue avec la bibliothèque Servo, comment corriger ce problème ??? on: September 27, 2013, 12:52:39 am
Pourquoi ne veux-tu pas garder #define servo46 OCR5A ? ça marche très bien! je t'ai juste montré le fastidieux chemin pour comprendre comment ça marchait...

de plus, le type ptr n'est pas bon je pense.
619  International / Le bar / Re: [CDG] tout peut s'optimiser! on: September 27, 2013, 12:47:10 am
Bonsoir,
J'ai fait la mise à jour du compilateur selon les indications de Skywodd : http://forum.arduino.cc/index.php?topic=182507.msg1363449#msg1363449
Quelques petites différence par rapport  à la description : http://forum.arduino.cc/index.php?topic=182507.msg1364124#msg1364124
A ce jour, j'utilise 4.7.2
@+

ok. j'ai bien suivi les étapes 1 et 3 depuis skyduino.wordpress.com (téléchargement / installation de la toolchain (version 4.7.2), copie du fichier avrdude.conf, renommage avr_old, copie de la toolchain dans le avr de arduino). version IDE : 1.0.5

Mais à l'installation, je n'ai pas coché "ajout au path". il y a un .bat qui permet de le faire après (mais à lancer à chaque démarrage de windaube. avec ou sans : aucun résultat...
620  International / Français / Re: Capteur avec Arduino on: September 26, 2013, 03:56:20 pm
Pourquoi ne pas prendre un truc déjà tout fait? je suis sûr qu'il y a des tas de gens qui ont déjà fait la même chose...

en fouillant sur gogol, tu trouveras quelqu'un qui l'a déjà fait, non?

à lire, c'est un peu long, mais ça vaut le coup car pas trop mal documenté : http://jeromeabel.net/ressources/xbee-arduino

sinon, il y a un projet similaire : http://forum.arduino.cc/index.php?topic=188931.0
621  International / Français / Re: Bogue avec la bibliothèque Servo, comment corriger ce problème ??? on: September 26, 2013, 03:26:29 pm
je suis en plein dedans...

alors voilà le chemin complet de la définition de OCR1A sur UNO (j'ai pas encore vu le code MEGA2560, mais c'est exactement pareil, seule l'adresse change). Par ordre de compilation :

Code:
// dans le fichier main.cpp :
#include <arduino.h>

// dans le fichier arduino.h :
#include io.h

// dans le fichier io.h
#include <sfr_defs.h>
#include <iom328p.h>

// dans le fichier sfr_defs.h :
#define _SFR_MEM16(mem_addr) (mem_addr)

// dans le fichier iom328.h :
#define OCR1A _SFR_MEM16(0x88)

// dans ton fichier
#define servo10 OCR1A

tout ça alors qu'on pourrait virer tous les fichiers et écrire

Code:
const ptr servo10 = 0x0088;
622  International / Français / Re: calcule deux mosfet on: September 26, 2013, 03:16:25 pm
Là, on ne peut rien pour toi, le schéma n'est pas bon.
623  International / Français / Re: probleme affichage selon alimentation on: September 26, 2013, 03:15:13 pm
l'alim interne de l'arduino (le régulateur) est une grosse grosse merde (désolé, mais je n'ai que ce mot là). il est soit-disant donné pour 500mA, mais commence à plier à 100mA. ton LCD consomme trop, donc si ton alim te fournit du 5V, oublie le Vin et alimente tout directement en 5V, c'est la solution.

et s'il te plait, fais un nez fort, tu fais tellement de fautes d'ortograf que tu es illisible, c'est pénible à lire au point de ne pas avoir envie de te répondre car déchiffrer tes posts prend plus de temps que d'y répondre.
624  International / Français / Re: Comment incrémenter ceci 0x0100 on: September 26, 2013, 03:08:17 pm
1) le type de variable

Je fais toujours attention à mes types de variables. un word ou un int occupent la même place en mémoire (2 octets), mais la diff entre les deux, c'est les valeurs qu'ils peuvent prendre.

word = entier positif. 0 <= word <= 65535
int = entier signé -32763 <= int <= 32763

quand je sais qu'une variable ne prendra jamais de valeur négative, je la déclare en non signé, c'est comme ça, ma façon de faire. de même, si j'ai :
Code:
int table[64];
pour indexer table, j'utiliserai une variable byte, car 0 <= byte <= 255, et pourquoi travailler avec un 16bits quand 8 suffisent?

j'appelle ça de l'optimisation. n'oublions pas que l'arduino est une plateforme 8 bits, et que bosser avec 16 bits lui demande pas loin de 10 x plus de temps qu'avec un simple octet. alors je travaille toujours avec des variables 8bits non signées, et seulement si j'ai besoin, j'attaque les word, int, long...

c'est la grosse erreur de la team arduino qui parle toujours d'int, déformation du PC où l'int est maintenant la base des procs de PC (une plateforme 64 bits n'aura pas peur de bosser avec des variables 32bits, car sur PC, un int fait 4 octets).

2) Serial.println((EPROM_INC*index_EPROM)+EPROM_COU)

si ça donne 82, ça m'inquiète, car dans (84 x 0) + 0, il est impossible de trouver "82".

Serial.write(48);  // affiche "0"
Serial.println("0");  // affiche "0"

je sais que le "préprocesseur", au niveau du compilateur, va traduire ton code en Serial.println(0*index_EPROM); mais de là à faire 82...

tu as essayé avec Serial.println((index_EPROM*EPROM_INC)+EPROM_COU) ? c'est tout con, mais qui sait?
625  International / Le bar / Re: [CDG] tout peut s'optimiser! on: September 26, 2013, 03:46:23 am
Je suis tombé sur une vieille discussion...
Désolé, c'est ce que donne ton code avec le logiciel arduino 1.04!
Normal, la team arduino fourni l'ide avec une version de AVR-GCC datant de 2008 smiley-wink

Pour mettre à jour AVR-GCC :
1) télécharge MHV AVR TOOLS : http://www.makehackvoid.com/node/578/release
2) installe le tout
3) copie le dossier de l'installation (qui doit contenir bin, etc, ...) dans le dossier hardware/tools/avr de ton installation arduino (renomme l'ancien dossier avr en avr-old)
4) copie le fichier avrdude.conf du dossier "bin" dans le dossier "etc"
5) relance l'ide arduino, compile et enjoy smiley-wink
Alors j'ai fait! j'ai trouvé la mise à jour vers AVR GCC 4.7.2, j'ai installé, copié... bref, tout fait comme Skywood a dit.

Mais voilà, il semblerait que le nouvel avr-g++.exe ne réponde pas, j'ai "erreur de compilation" et ceci :
Quote
C:\Program Files\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -IC:\Program Files\Arduino\hardware\arduino\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\variants\standard C:\DOCUME~1\FREEPO~1\LOCALS~1\Temp\build1091528783843041485.tmp\BareMinimum_test.cpp -o C:\DOCUME~1\FREEPO~1\LOCALS~1\Temp\build1091528783843041485.tmp\BareMinimum_test.cpp.o
mince alors... j'aurais bien voulu tester mon petit code bidon avec un compilateur + à jour (j'ai définit la carte UNO classique).

J'imagine bien que Sky a déjà de quoi s'occuper, mais si un jour il a le courage de nous faire un tuto sur une MAJ du compilateur...

Je vais regarder ce que je peux faire de mon côté...
626  International / Français / Re: Bogue avec la bibliothèque Servo, comment corriger ce problème ??? on: September 26, 2013, 03:12:03 am
Non, va pas te taper un mur...

J'imagine qu'à force de gens comme nous qui tenteront de réécrire les fonctions basiques, on arrivera enfin à voir, sentir et utiliser toute la puissance d'un petit 328p. Il doit forcément déjà exister des IDE pile-poil qui remplaceraient à merveille arduino (c'est quand même terrible de voir qu'ils utilisent encore la plateforme java, alors que même sous visualC, ça tournerait bien plus vite), et on achètera du chinois moins cher, et arduino sombrera dans la cupidité aveugle de sa team.

En attendant, on va développer notre propre lib servo sous arduino, il faut bien un début...
627  International / Français / Re: Bogue avec la bibliothèque Servo, comment corriger ce problème ??? on: September 26, 2013, 01:09:29 am
http://forum.arduino.cc/index.php?topic=189356.0 par exemple...
628  International / Français / Re: calcule deux mosfet on: September 26, 2013, 12:57:38 am
Moi, j'aurais plutôt pensé à ce câblage sur le ruban (il m'en reste un bout à la maison, il est fait ainsi):

Code:
Alim + ----/\/\/\------/\/\/\------|>|----|>|----|>|-------  alim -
              R           R         D      D      D     
Il est inscrit 151 sur les résistances, elles font donc 150 ohms chacune. ensuite, I = (12V - 3 x Vd) / (2 x R). avec Vd = 2,3V et R = 150, on retrouve les 16mA par groupe de 3 leds, soit 330mA / mètre (60 led / m), et P = 12 x 0,33 = 4W/m (= 20W / 5m). Cest données étaient mises sur l'annonce ebay. Chaque résistance dissipe 42mW.

Maintenant, il ne faut pas trop en demander, car la ref des leds est donnée "5050", ça pourrait faire croire à un type de led 5050, mais il n'en est rien, car les leds 5050 sont bien plus puissantes et plus chères... donc le vendeur doit sensiblement vendre du tout et n'importe quoi.
629  International / Français / Re: Bogue avec la bibliothèque Servo, comment corriger ce problème ??? on: September 25, 2013, 03:19:08 pm
l'image que j'ai mise dans mon post, je l'ai tirée d'un PDF, mais je l'ai corrigée avant de la poster.
630  International / Français / Re: calcule deux mosfet on: September 25, 2013, 03:10:46 pm
ils annoncent 20W/5m, soit 4W/m, soit 330mA/m. tu peux donc sans souci alimenter un bout de deux mètres.

je ne sais pas où tu as trouvé qu'il fallait un mosfet / m ? Il faut avoir un minimum de notions d'électronique quand il s'agit de choisir un composant...

d'ailleurs, sur la photo, ils alimentent tout le rouleau d'un coup...

Pour ton mosfet, si tu lui demandes de commuter 300mA alors qu'il est prévu pour 25, cherche pas, tu tentes d'utiliser un canon pour écraser une mouche...
Pages: 1 ... 40 41 [42] 43 44 ... 94