Show Posts
Pages: 1 ... 104 105 [106] 107 108 ... 201
1576  International / Français / Re: Sauvegarde d'une valeur de variable on: November 27, 2012, 04:03:10 am
Plusieurs manières
 - un tableau contenant les N dernières valeurs et on fait la moyenne sur ces valeurs. A chaque nouvelle mesure on enlève la plus ancienne et on ajoute la nouvelle.
 - une moyenne pondérée. V = a * mesure + (1-a) * Vprécédent. Ce filtre dispense de gérer un tableau. En jouant sur la valeur de a on pondère plus ou moins l'influence de la dernière mesures par rapport aux précédentes.

Il y a eu un sujet là-dessus il y a peu de temps http://arduino.cc/forum/index.php/topic,132674.0.html
1577  International / Français / Re: Sauvegarde d'une valeur de variable on: November 27, 2012, 03:42:31 am
Il vaut mieux faire une moyenne glissante sur plusieurs échantillons consécutifs
1578  International / Français / Re: Problème de récupération d'input pendant une boucle FOR on: November 27, 2012, 03:38:13 am
En fait j'ai l'impression que je ne comprends pas ton problème.
Tu lis l'état de l'interrupteur toutes les 200ms (à chaque itération des 2 boucles) mais tu ne prends cet état en compte qu'une fois sur 20. Je ne vois pas où est le problème.

Il faut placer le code entre les balises code (bouton # au dessus de la fenêtre de saisie) ce qui le rend plus lisible.

Il y a bien une résistance de pullup sur ton bouton?
1579  International / Français / Re: Effacer completement le programme d'une Mega on: November 27, 2012, 02:40:33 am
@skywodd: concernant le dernier point de ta réponse je ne suis pas d'accord. Dans la flash on retrouve des morceaux d'ancien code. J'ai retrouvé des chaines constantes de programmes vieux de plusieurs mois en relisant la flash.
1580  International / Français / Re: L'alimentation et l'arduino on: November 27, 2012, 02:37:04 am
Quote
2 pile 3V lithium c'est trop peu à ton avis
Ce qui compte c'est la capacité des piles, c'est pas leur tension.

En ce qui concerne la possibilité de fonctionner à partir d'une source 3V normalement une arduino 16MHz n'est pas sensé fonctionner correctement en dessous de 4,5V. Pour utiliser du 3V il faudrait utiliser une carte à 8MHz ou alors avec l'oscillateur interne.

Ensuite il faut faire un bilan de puissance consommation en veille, consommation en activité, évaluation temps actif/temps en veille et comparer à la capacité de la source d'alimentation.
1581  International / Français / Re: Problème de récupération d'input pendant une boucle FOR on: November 27, 2012, 02:26:30 am
Quote
Même si j'appuie et relache le bouton très rapidement,
La notion de rapidement est très subjective. Avec une temporisation de 100ms par boucle un appui rapide peut facilement durer 2 ou 3 tours de boucle voir plus si on compte le temps de rebond des contacts.
1582  International / Français / Re: [Question] Sonde thermocouple et l'arduino on: November 26, 2012, 04:46:38 am
La Mini est comme une autre carte. Elle a même plus d'entrées analogiques.
1583  International / Français / Re: [aide] EEPROM AT93C46 protocole SPI on: November 25, 2012, 12:01:59 pm
Il faut créer ta propre librairie avec shiftIn et shiftOut en leur donnant un autre nom par exemple shiftOut10 et shiftIn9 (pour ne pas avoir de conflit avec la lib  wiring_shift.c) à la place de la lib SPI. Ou alors les intégrer directement dans ton programme si tu ne veux pas faire une librairie.
Dans ton programme il faut ensuite remplacer SPI.transfert par shiftOut10 par exemple pour envoyer des valeurs dans ta mémoire.
1584  International / Français / Re: Effacer completement le programme d'une Mega on: November 25, 2012, 11:21:29 am
La tournure de cette discutions pourrait inspirer un épisode des experts, dont la clé de l'énigme aurait été de retrouver un morceau de code a moitiez supprimer a l'intérieur d'une eeprom qui aurait permis un meurtre smiley-grin.
Oh lacolombenoir à quoi il te sert ton arduino? Dans le mien il n'y a que des trucs bien innocents....
1585  International / Français / Re: travaille pour ecole! on: November 25, 2012, 11:16:36 am
Quote
trop tard??
Tu a écrit 27/10 au lieu de 27/11

Quote
Mais a se que je vois c´est dificile pour vous d´aider.
On ne refuse pas d'aider.
On refuse de faire ton travail à ta place.
Comme je l'ai dit plus haut, si tu écris un peu ton algorithmie on veut bien t'aider à coder. Mais il est hors de question que l'on fasse ton boulot. Des questions comme la tienne il y en a régulièrement sur le site. Mais, en général, les personnes arrivent avec quelques infos qui montrent qu'elles ont commencée à réfléchir au problème et qu'elles ont un début de solution.

Comme le fait remarquer Tealcoune c'est un peu tardif. Questionner dimanche en fin de journée pour un travail à rendre mardi avec aucune trace d'une quelconque réflexion en amont.
On aurait pu s'attendre à un schéma et au moins quelques lignes décrivant l'algorithme que tu veux utiliser et non juste l'énoncé du problème.
1586  International / Français / Re: travaille pour ecole! on: November 25, 2012, 10:21:31 am
Quote
Mon prof. a demander pour faire
.....
Si quelle qu´un pouvais me le faire je lui serai entierement reconnaissant.
On est passionné mais pas cons  smiley-lol
Je me trompe ou le professeur a demandé que ce soit toi qui le fasse??

Quote
Je suis un peu debutant dans la programation.
Etre débutant n'excuse rien, réfléchit un peu. Même si tu ne sais pas programmer tu sais réfléchir.
Ecrit ce que ton programme devrait faire en bon français. En détaillant l’enchaînement des tâches qu'il doit réaliser.
Une fois là, tu reviens et on sera prêt à te filer un coup de main.

Au fait c'est pour quand ce travail?

1587  International / Français / Re: [aide] EEPROM AT93C46 protocole SPI on: November 25, 2012, 10:00:08 am
Quote
voici les modification que j'ai faite la compilation fonctionne, mais j'ai exactement le même résultat que j'avais avant .
Sans le bout de programme qui appelle ces fonctions on ne peut pas trop t'aider.
1588  International / Français / Re: Effacer completement le programme d'une Mega on: November 25, 2012, 09:21:47 am
Quote
Afin d'être sur il faudrait pouvoir lire la totalité du contenu et l'afficher puis faire des tests d'effacement, là on serait sur de la réponse et de la conduite à tenir, mais bon je ne sais pas si c'est possible.
En même temps quel est l’intérêt?
Si des octets d'un ancien programme ne sont pas effacés on a aucune raison d'exécuter ce code sauf si on fait une erreur dans le programme qui a été écrit après.
Donc normalement on ne doit jamais retomber dans l'ancien code.

Bon un bout de code pour les curieux
Code:
#include <avr/pgmspace.h>


PROGMEM prog_char octet[] = {0};

void setup(void){
  unsigned int i,j;
  unsigned char myChar;
 
  Serial.begin(9600);
  Serial.println();
  Serial.println("Dump memoire programme");
  for (i=0;i<32768;i+=16){
    Serial.print(i,HEX);
    Serial.print(" : ");
    for (j=0;j<16;j++){
      myChar =  (pgm_read_byte_near(octet + i+j) & 0xFF);
      //myChar =  i & 0xFF;
      if (myChar<0x10)
        Serial.print("0");
      Serial.print(myChar,HEX);
      Serial.print(" ");
    }
    Serial.print("   ");
    for (j=0;j<16;j++){
      myChar =  (pgm_read_byte_near(octet + i+j) & 0xFF);
      //myChar =  i & 0xFF;
      if((myChar>0x20) && (myChar<128))
        Serial.write(myChar);
      else
        Serial.print(" ");
    }
    Serial.println("");
  }
}

void loop(void){
}

Affiche le contenu de la mémoire. L'origine n'est pas le début de la mémoire mais l'adresse de la variable octet. De ce que j'ai pu voir cette variable est au début de la mémoire car au bout de quelques lignes je trouve ma chaine de titre "Dump memoire programme".
Le programme est fait un peu à l'arrache. J'ai fixé la longueur du dump à 32768 directement dans le code, suivant le micro utilisé il faudra peut être changer.
Et les lignes se décalent suivant l'adresse, j'ai oublié de tester la longueur de l'adresse pour aligner les colonnes.

En tout cas cela confirme que la mémoire n'est pas effacée au-delà du nouveau programme j'ai retrouvé des "restes" de vieux programmes que j'ai fait il y a un bon bout de temps.
Mais comme je le disais au début on ne doit jamais retomber dans le vieux code sauf plantage.
1589  International / Français / Re: [aide] EEPROM AT93C46 protocole SPI on: November 25, 2012, 06:39:58 am
Quote
je vais devoirs émuler mon propre signal SPI,

Je te suggères de partir de wiring_shift.c qui se trouve dans les fichiers sources de l'arduino, hardware/arduino/cores/arduino.
La librairie fonctionne avec des uint8_t (des byte) et peut facilement être adaptée. Il faut modifier shiftOut pour avoir en entrée un unsigned int en ne décalant que 10 bits évidemment. Pour la lecture il faut reprendre la fonctionne shiftIn et lui faire lire un bit supplémentaire que l'on rejette car il y a un 0 bidon en début de cycle de lecture de cette mémoire.

Edit : J'oubliais, il faut renommer les fonctions sinon il va y avoir un conflit avec la librairie originale.
1590  International / Français / Re: [aide] EEPROM AT93C46 protocole SPI on: November 25, 2012, 04:52:27 am
Quote
Donc avant de prendre ce dernier poste pour argent contant j'espère que j'aurais confirmation ou pas dans les prochain poste.
La bonne démarche c'est d'ouvrir la doc de l'atmega, pas d'attendre que quelqu'un le fasse pour toi.
Mais bon un extrait:
8-bit Microcontroller with 4/8/16/32K Bytes In-System Programmable Flash
ATmega48PA, ATmega88PA, ATmega168PA, ATmega328P
chapitre 18. SPI – Serial Peripheral Interface


When configured as a Master, the SPI interface has no automatic control of the SS line. This
must be handled by user software before communication can start. When this is done, writing a
byte to the SPI Data Register starts the SPI clock generator, and the hardware shifts the eight
bits into the Slave
. After shifting one byte, the SPI clock generator stops, setting the end of
Transmission Flag (SPIF). If the SPI Interrupt Enable bit (SPIE) in the SPCR Register is set, an
interrupt is requested. The Master may continue to shift the next byte by writing it into SPDR, or
signal the end of packet by pulling high the Slave Select, SS line. The last incoming byte will be
kept in the Buffer Register for later use.


Jusqu'à preuve du contraire la doc Atmel ne parle que de byte. Libre à toi de croire ce que tu veux.
Si tu veux, tu peux aller voir les illustration de la doc. Les registres font 8 bits et il n'y a pas d'option pour changer ça.
Pages: 1 ... 104 105 [106] 107 108 ... 201