mcp23S17spi erreur code atmega88 compilation erreurs

bonjour regardé mon code erreur compilation je cherche a faire fonctionné ce code avec atmega88 et deux puce mcp23S17 spi je veut que la puce soit activé part le signal pb1 du registre port D de atmega88 pour sélectionné la puce sur cs et nom pas sur pb2 car dans mon j'utilise une carte Arduino uno pour compilé mes le problème ces pas ma carte mes le code ou est cette erreur car suis débutant j'ais des ligne en rouge erreurs je bloque depuis des jours jais le projet avais ete ecris a epoque par un devlopeur jais le code hex du fichier atmega jais realisé mon programmeure mes il y a plusieure fonction sur mon aplication il avais creé mon code atmega88 pour selectioné la puce avec pb2 le port registre D de atmega tous fonctione bien et les puce lise et ecrive bien sur les sortie gpio a epoque ou manquait de place sortie gpio on a ajouté deux mcp23S17 spi ces ok pour apellé une fonction sur mon aplication quand japelle une autre fonction elle active un signal sur pb1 pour programmé un autre genre de puce mes dans cette fonction je dois relié 5 fils dupond a mon mcu que je veut programmé ce que je voulait faire ces placé une autre puce atmega88 gardé mon code origine sur mon pcb et ajouté un atmega88 supplémentaire avec un code diffèrent pour activé pb1 comme signale de sélection de puce mcp23S17 pour utilisé les sortie gpio directement et évité de relié des fils car il avais été conçus comme ça a époque j'ais le fichier hex origine je cherche un code que je peut placé sur un autre atmega88 le placé ces pas un problème de réalise le pcb le code ces le problème mercis de aidé svp atmega88 ces un qfp32 atmega88 20-AU mcp23S17spi erreur code atmega88 compilation erreurs

le code

//
// FILE: MCP23S17_two_ADDRESS.ino
// AUTHOR: Rob Tillaart
// PURPOSE: demo two MCP23S17 devices
// URL: GitHub - RobTillaart/MCP23S17: Arduino library for SPI based MCP23S17 16 channel port expander
//
// # ATMEGA 88-20AU

#include "MCP23S17.h"
#define PB1_PIN 13
#define CS_PIN 10
#define MCP_COUNT 13
#define MCP23S17 mcp[MCP_COUNT];

void setup() {

Serial.begin(9600);
pinMode (PB1_PIN, INPUT_PULLUP); // Initialisation de la communication série pinMode
}
int i = 0; i < MCP_COUNT; i++) { mcp[i].begin(CS_PIN); // comme entrée avec une résistance de rappel interne
}

int i = 0; i < MCP_COUNT; i++) mcp[i].begin(CS_PIN); // Initialiser la communication SPI et les instances MCP23S17 pour[i].pinMode(0xFF);
}
mcp[i].pinMode(0xFF); Defini toutes les broches GPIO comme entrées // Initialise MCP23S17 avec la broche de sélection de puce pour mcp

}

void loop() {

digitalRead(PB1_PIN) == LOW); //Vérifiez si PB1 est actif if
int i = 0; i < MCP_COUNT; i++); //Sélectionnez les deux puces MCP23S17
mcp[i].setChipSelectLow(); // Définissez la broche de sélection de puce LOW pour sélectionner la puce
int i = 0; i < MCP_COUNT; i++) // Exemple : basculez la broche GPIO 0 sur les deux puces
mcp[i].digitalWrite(0, HIGH); // Définit la broche GPIO 0 HIGH delay (500);
mcp[i].digitalWrite(0, LOW); // Attendez 500 millisecondes
int i = 0; i < MCP_COUNT; i++); // Définit la broche GPIO 0 LOW delay (500);
mcp[i].setChipSelectLow(); // Définissez la broche de sélection de puce LOW pour sélectionner la puce
mcp[i].setChipSelectHigh(); // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }
int i = 0; i < MCP_COUNT; i++) //Exemple : basculez la broche GPIO 0 sur les deux puces
mcp[i].digitalWrite(0, HIGH); // Définit la broche GPIO 0 HIGH delay (500);
mcp[i].digitalWrite(0, LOW); // Définit la broche GPIO 0 LOW delay (500);
int i = 0; i < MCP_COUNT; i++) // Désélectionnez les deux puces MCP23S17

}

mcp[i].setChipSelectHigh(); // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }

`saisissez ou collez du code ici`
````Texte préformaté`
//
//    FILE: MCP23S17_two_ADDRESS.ino
//  AUTHOR: Rob Tillaart
// PURPOSE: demo two MCP23S17 devices
//     URL: https://github.com/RobTillaart/MCP23S17
//
// #  ATMEGA 88-20AU


#include "MCP23S17.h"
#define PB1_PIN 13
#define CS_PIN 10
#define MCP_COUNT 13
#define MCP23S17 mcp[MCP_COUNT];


void setup() {
  
  Serial.begin(9600);
  pinMode (PB1_PIN, INPUT_PULLUP);  // Initialisation de la communication série pinMode
}
 int i = 0; i < MCP_COUNT; i++) { mcp[i].begin(CS_PIN); // comme entrée avec une résistance de rappel interne 
}

 int i = 0; i < MCP_COUNT; i++)  mcp[i].begin(CS_PIN);   //  Initialiser la communication SPI et les instances MCP23S17 pour[i].pinMode(0xFF);
}
 mcp[i].pinMode(0xFF); Defini toutes les broches GPIO comme entrées   // Initialise MCP23S17 avec la broche de sélection de puce pour mcp


}


void loop() {

  digitalRead(PB1_PIN) == LOW);    //Vérifiez si PB1 est actif if
  int i = 0; i < MCP_COUNT; i++);  //Sélectionnez les deux puces MCP23S17
  mcp[i].setChipSelectLow();       // Définissez la broche de sélection de puce LOW pour sélectionner la puce
  int i = 0; i < MCP_COUNT; i++)   // Exemple : basculez la broche GPIO 0 sur les deux puces
  mcp[i].digitalWrite(0, HIGH);    // Définit la broche GPIO 0 HIGH delay (500);
  mcp[i].digitalWrite(0, LOW);     // Attendez 500 millisecondes
  int i = 0; i < MCP_COUNT; i++);  // Définit la broche GPIO 0 LOW delay (500);
  mcp[i].setChipSelectLow();       // Définissez la broche de sélection de puce LOW pour sélectionner la puce
  mcp[i].setChipSelectHigh();      // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } } 
  int i = 0; i < MCP_COUNT; i++)   //Exemple : basculez la broche GPIO 0 sur les deux puces 
  mcp[i].digitalWrite(0, HIGH);    // Définit la broche GPIO 0 HIGH delay (500);
  mcp[i].digitalWrite(0, LOW);     // Définit la broche GPIO 0 LOW delay (500);
  int i = 0; i < MCP_COUNT; i++)   // Désélectionnez les deux puces MCP23S17





}

 mcp[i].setChipSelectHigh();     // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }

Une piste :
Je ne vois pas très bien où tu as déclaré des objets mcp23s17.

J’ai l’impression que c’est dans la fonction setup().

Si c’est le cas ils ne sont visibles qu’à l’intérieur de setup().
Il faut aussi une pin CS par objet SPI.

Bonjour merci de répondre vous pouvez expliquez svp par où commence car je ne comprend pas bien ino je peut le posté vous pouvez testé ce code pour voir erreur

Salut.

Où as-tu vu que l'on instanciait un tableau d'objets comme cela ?

Une boucle for ne s'écrit pas ainsi.

D'où sort cette méthode setChipSelectLow() ?

Un conseil : commence par la base, apprendre le langage.

Alors il ne faut pas bruler les étapes.
Un bon guide pour commencer
eskimon.fr

Commence par le début, fait des exemples basiques et progresse à ton rythme.

déjà mercis répondre ces bien mes on est pas née prof je repart des ordi je fait pas du code Arduino j'ais besoins de conseille et vous envoyé promené ces pas gentille a mon avis ce code même vous ne serait le faire fonctionné y a il quelqu'un bien gentille compétant qui peut aidé mercis

en plus me suis trompe de code quand je fessait des test je vais posté le bon ces juste excuse moi voilà le code désolé

//
// FILE: MCP23S17_two_ADDRESS.ino
// AUTHOR: Rob Tillaart
// PURPOSE: demo two MCP23S17 devices
// URL: GitHub - RobTillaart/MCP23S17: Arduino library for SPI based MCP23S17 16 channel port expander
//
// #ATMEGA 88-20AU 2X MCP

#include "MCP23S17.h"
#define PB1_PIN 13
#define CS_PIN 10
#define MCP_COUNT 13
#define MCP23S17 mcp[MCP_COUNT];

void setup() {

Serial.begin(9600);
pinMode (PB1_PIN, INPUT_PULLUP); // Initialisation de la communication série pinMode
}

pinMoDE (int i = 0; i < MCP_COUNT; i++); // comme entrée avec une résistance de rappel interne
}

int i = 0; i < MCP_COUNT; i++) mcp[i].begin(CS_PIN); // Initialiser la communication SPI et les instances MCP23S17 pour[i].pinMode(0xFF);
}
mcp[i].pinMode(0xFF);Defini toutes les broches GPIO comme entrées } } // Initialise MCP23S17 avec la broche de sélection de puce pour mcp

}

void loop() {

digitalRead(PB1_PIN) == LOW); //Vérifiez si PB1 est actif if
int i = 0; i < MCP_COUNT; i++); //Sélectionnez les deux puces MCP23S17
mcp[i].setChipSelectLow(); // Définissez la broche de sélection de puce LOW pour sélectionner la puce
int i = 0; i < MCP_COUNT; i++) // Exemple : basculez la broche GPIO 0 sur les deux puces
mcp[i].digitalWrite(0, HIGH); // Définit la broche GPIO 0 HIGH delay (500);
mcp[i].digitalWrite(0, LOW); // Attendez 500 millisecondes
int i = 0; i < MCP_COUNT; i++); // Définit la broche GPIO 0 LOW delay (500);
mcp[i].setChipSelectLow(); // Définissez la broche de sélection de puce LOW pour sélectionner la puce
mcp[i].setChipSelectHigh(); // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }
int i = 0; i < MCP_COUNT; i++) //Exemple : basculez la broche GPIO 0 sur les deux puces
mcp[i].digitalWrite(0, HIGH); // Définit la broche GPIO 0 HIGH delay (500);
mcp[i].digitalWrite(0, LOW); // Définit la broche GPIO 0 LOW delay (500);
int i = 0; i < MCP_COUNT; i++) // Désélectionnez les deux puces MCP23S17

}

mcp[i].setChipSelectHigh(); // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }

//
// FILE: MCP23S17_two_ADDRESS.ino
// AUTHOR: Rob Tillaart
// PURPOSE: demo two MCP23S17 devices
// URL: GitHub - RobTillaart/MCP23S17: Arduino library for SPI based MCP23S17 16 channel port expander
//
// #ATMEGA 88-20AU 2X MCP

#include "MCP23S17.h"
#define PB1_PIN 13
#define CS_PIN 10
#define MCP_COUNT 13
#define MCP23S17 mcp[MCP_COUNT];

void setup() {

Serial.begin(9600);
pinMode (PB1_PIN, INPUT_PULLUP); // Initialisation de la communication série pinMode
}

pinMoDE (int i = 0; i < MCP_COUNT; i++); // comme entrée avec une résistance de rappel interne
}

int i = 0; i < MCP_COUNT; i++) mcp[i].begin(CS_PIN); // Initialiser la communication SPI et les instances MCP23S17 pour[i].pinMode(0xFF);
}
mcp[i].pinMode(0xFF);Defini toutes les broches GPIO comme entrées } } // Initialise MCP23S17 avec la broche de sélection de puce pour mcp

}

void loop() {

digitalRead(PB1_PIN) == LOW); //Vérifiez si PB1 est actif if
int i = 0; i < MCP_COUNT; i++); //Sélectionnez les deux puces MCP23S17
mcp[i].setChipSelectLow(); // Définissez la broche de sélection de puce LOW pour sélectionner la puce
int i = 0; i < MCP_COUNT; i++) // Exemple : basculez la broche GPIO 0 sur les deux puces
mcp[i].digitalWrite(0, HIGH); // Définit la broche GPIO 0 HIGH delay (500);
mcp[i].digitalWrite(0, LOW); // Attendez 500 millisecondes
int i = 0; i < MCP_COUNT; i++); // Définit la broche GPIO 0 LOW delay (500);
mcp[i].setChipSelectLow(); // Définissez la broche de sélection de puce LOW pour sélectionner la puce
mcp[i].setChipSelectHigh(); // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }
int i = 0; i < MCP_COUNT; i++) //Exemple : basculez la broche GPIO 0 sur les deux puces
mcp[i].digitalWrite(0, HIGH); // Définit la broche GPIO 0 HIGH delay (500);
mcp[i].digitalWrite(0, LOW); // Définit la broche GPIO 0 LOW delay (500);
int i = 0; i < MCP_COUNT; i++) // Désélectionnez les deux puces MCP23S17

}

mcp[i].setChipSelectHigh(); // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }

`saisissez ou collez du code ici`
```//
//    FILE: MCP23S17_two_ADDRESS.ino
//  AUTHOR: Rob Tillaart
// PURPOSE: demo two MCP23S17 devices
//     URL: https://github.com/RobTillaart/MCP23S17
//
// #ATMEGA 88-20AU  2X MCP  


#include "MCP23S17.h"
#define PB1_PIN 13
#define CS_PIN 10
#define MCP_COUNT 13
#define MCP23S17 mcp[MCP_COUNT];


void setup() {
  
  Serial.begin(9600);
  pinMode (PB1_PIN, INPUT_PULLUP);  // Initialisation de la communication série pinMode
}

  pinMoDE (int i = 0; i < MCP_COUNT; i++);  // comme entrée avec une résistance de rappel interne 
}

 int i = 0; i < MCP_COUNT; i++)  mcp[i].begin(CS_PIN);   //  Initialiser la communication SPI et les instances MCP23S17 pour[i].pinMode(0xFF);
}
 mcp[i].pinMode(0xFF);Defini toutes les broches GPIO comme entrées } }  // Initialise MCP23S17 avec la broche de sélection de puce pour mcp


}


void loop() {

  digitalRead(PB1_PIN) == LOW);    //Vérifiez si PB1 est actif if
  int i = 0; i < MCP_COUNT; i++);  //Sélectionnez les deux puces MCP23S17
  mcp[i].setChipSelectLow();       // Définissez la broche de sélection de puce LOW pour sélectionner la puce
  int i = 0; i < MCP_COUNT; i++)   // Exemple : basculez la broche GPIO 0 sur les deux puces
  mcp[i].digitalWrite(0, HIGH);    // Définit la broche GPIO 0 HIGH delay (500);
  mcp[i].digitalWrite(0, LOW);     // Attendez 500 millisecondes
  int i = 0; i < MCP_COUNT; i++);  // Définit la broche GPIO 0 LOW delay (500);
  mcp[i].setChipSelectLow();       // Définissez la broche de sélection de puce LOW pour sélectionner la puce
  mcp[i].setChipSelectHigh();      // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } } 
  int i = 0; i < MCP_COUNT; i++)   //Exemple : basculez la broche GPIO 0 sur les deux puces 
  mcp[i].digitalWrite(0, HIGH);    // Définit la broche GPIO 0 HIGH delay (500);
  mcp[i].digitalWrite(0, LOW);     // Définit la broche GPIO 0 LOW delay (500);
  int i = 0; i < MCP_COUNT; i++)   // Désélectionnez les deux puces MCP23S17





}

 mcp[i].setChipSelectHigh();     // Définissez la broche de sélection de puce HIGH pour désélectionner la puce } } }

Merci de prendre quelques minutes pour lire "Les bonnes pratiques du forum francophone" et les appliquer.

En particulier, la mise en forme du code avec les balises <code/>
En l'état, le code est illisible.

bonsoir tu ces aidé pour ce code merci ces possible de placé deux atmega en série avec deux code diffèrent pour sélection puce mcp23S17 mon code origine en hex fonctionne me active les puce sur pb2 CS et quand j'appelle une autre fonction dans mon application il active pb1 pour autre fonction dans application je voudrait qu'il passe par les mcp directement car dans le programme origine il ne passe pas par les puce mcp mes je dois câblé par des câble Dupond pour ce faire tandis que dans le code origine il active pb2 port d du registre atmega qui sélectionne les puce ajouté un deuxième atmega sur mon pcb avec un code approprié ces possible et rien changé a mon code origine qui est écris en hex donc je ne peut plus le modifié car le développeurs n'est plus la donc je voulait un code qui me permet qui prendrais le relai pour activé les deux puce avec un autre atmega sur ma carte en plus

hello
regarde ICI, en sachant que NANO = UNO

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.