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
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 } } }
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
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
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 } } }
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 } } }
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