[Résolu] Aide réalisation bibliothèque MCP23S17
bonjour à tous 
je suis tout nouveau dans la communauté arduino. je possède un carte arduino uno rev3 et comme l'indique mon titre je cherche à créer une bibliothèque pour pouvoir utiliser mon port expander de chez microchip le mcp23s17 pour une liaison spi.
voici mon header :
et mon .cpp :
quand je compile mon .cpp j'ai l'erreur suivante : "mcp23s17.cpp:8: error: 'spi' not declared in scope".
je ne comprends pas pourquoi le compilateur me dit que spi n'est pas déclaré puisque j'ai inclus la biblibothèque spi.h pour pouvoir utiliser les fonction prédéfinies de cette bibliothèque. pourriez-vous m'aider à trouver d'ou vient cette erreur s'il vous plait ?
merci d'avance,
cordialement,
ps: je n'ai pas mis la doc technique du composant car je pense que mon problème vient d'une erreur au niveau de la programmation. si jamais il le faut je l'ajouterai.

je suis tout nouveau dans la communauté arduino. je possède un carte arduino uno rev3 et comme l'indique mon titre je cherche à créer une bibliothèque pour pouvoir utiliser mon port expander de chez microchip le mcp23s17 pour une liaison spi.
voici mon header :
code: [select]
#ifndef mcp23s17_h
#define mcp23s17_h
#include "arduino.h"
#include <spi.h>
// adresse des registres du mcp23s17 pour le fonctionnement avec la bank0
#define iodira 0x00
#define iodirb 0x01
#define ipola 0x02
#define ipolb 0x03
#define gpintena 0x04
#define gpintenb 0x05
#define defvala 0x06
#define defvalb 0x07
#define intcon1 0x08
#define dintcon2 0x09
#define iocon 0x0a
#define gppua 0x0c
#define gppub 0x0d
#define intfa 0x0e
#define intfb 0x0f
#define intcapa 0x10
#define intcapb 0x11
#define gpioa 0x12
#define gpiob 0x13
#define olata 0x14
#define olatb 0x15
#define opr 0b01000001
#define opw 0b01000000
int cs;
class mcp23s17
{
public :
void writedata(int address, int data);
int readdata(int address);
void init(int cheapsel, unsigned char dira, unsigned char dirb);
protected :
};
#endif
et mon .cpp :
code: [select]
#include "mcp23s17.h"
#include "arduino.h"
#include <spi.h>
void mcp23s17::writedata(int address, int data)
{
digitalwrite(cs,low); //select port expander
spi.transfer(opw); //send write opcode
spi.transfer(address);
spi.transfer(data);
digitalwrite(cs,high); //unselect port expander
}
void mcp23s17::init(int cheapsel, unsigned char dira, unsigned char dirb)
{
pinmode(cheapsel,output);
digitalwrite(cheapsel,high);
spi.begin();
mcp23s17::writedata(iocon,0x20);
mcp23s17::writedata(iocon+1,0x20);
mcp23s17::writedata(iodira,dira);
mcp23s17::writedata(iodirb,dirb);
cs=cheapsel;
}
quand je compile mon .cpp j'ai l'erreur suivante : "mcp23s17.cpp:8: error: 'spi' not declared in scope".
je ne comprends pas pourquoi le compilateur me dit que spi n'est pas déclaré puisque j'ai inclus la biblibothèque spi.h pour pouvoir utiliser les fonction prédéfinies de cette bibliothèque. pourriez-vous m'aider à trouver d'ou vient cette erreur s'il vous plait ?
merci d'avance,
cordialement,
ps: je n'ai pas mis la doc technique du composant car je pense que mon problème vient d'une erreur au niveau de la programmation. si jamais il le faut je l'ajouterai.
bonjour,
a défaut de pouvoir essayer, regarde ici et compare ce qui ne va pas.
https://github.com/dreamcat4/mcp23s17
@+
a défaut de pouvoir essayer, regarde ici et compare ce qui ne va pas.
https://github.com/dreamcat4/mcp23s17
@+
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > [Résolu] Aide réalisation bibliothèque MCP23S17
arduino
Comments
Post a Comment