je suis en train de faire une nouvelle machine, et je voulais lui mettre un arduino en guise d'automate
j'ai une fonction a retranscrire
dim encoche(5)
dim i is an integer
sub vidage()
for i=1 to 5
encoche(i) = 0
next i
end sub
donnerais
dim encoche(5) // là je suis pas sur du tout
int dim i // là je suis pas sur du tout
void vidage()
for i=1 to 5
encoche(i) = 0;
next i;
ensuite
sub gestionencoche()
for i = 1 to 5
encoche (6-i) = encoche(5-i)
next i
dumpencoche()
end sub
donnerais
void gestionencoche()
for i = 1 to 5
encoche (6-i) = encoche(5-i);
next i;
dumpencoche();
ensuite
sub dumpencoche()
for i=1 to 5
setmbbit 319+i, encoche(i)
next i
end sub
donnerais
dumpencoche()
for i=1 to 5
setmbbit 319+i, encoche(i); // là on memorise les encoche(i) sur l arduino, et je ne sais pas faire cela
next i;
en fait ces fonctions servent à creer une tableau de memorisation des etats d'encoche sur une table tournante, soit l encoche est plein 1 ou vide 0
et la table tourne d'un cran, donc on doit decaler le tableau de une ligne, mettre à 0 la derniere encoche qui sort du tableau, et decider ce que va devenir la premiere encoche du tableau
cela fait appel a des fonctions que je ne maitrise pas sous arduino, j ai mis 3 stagiaires crsa dessus qui seche
bool encoche[5];
#define base_pin 5 //pin choisie arbitrairement !
void vidage()
{
for( int i=0; i<5; i++)
{
encoche[i] = false;
}
}
void gestionencoche()
{
for( int i=0; i<5; i++)
{
encoche[5-i] = encoche[4-i];
}
dumpencoche();
}
void dumpencoche()
{
for( int i=0; i<5; i++)
{
// setmbbit 319+i, encoche(i);
//ici par contre je ne connais pas l'instruction utilisée mais
//vu son nom je pense qu'on positionne un bit dans un registre en
//fonction de la valeur de encoche[i]
digitalWrite(base_pin+i, encoche[i]);
}
}
en revanche rien ne rempli le tableau encoche[] dans ce code. il sera donc toujours à false partout
void dumpencoche()
{
for( int i=0; i<5; i++)
{
// setmbbit 319+i, encoche(i);
//ici par contre je ne connais pas l'instruction utilisée mais
//vu son nom je pense qu'on positionne un bit dans un registre en
//fonction de la valeur de encoche[i]
digitalWrite(base_pin+i, encoche[i]);
}
}
en revanche rien ne rempli le tableau encoche[] dans ce code. il sera donc toujours à false partout
Plutôt que de tenter de retire un à tous les indices d'un tableau de booleens (8 bits), sacrifiez le premier élement (qui ne sera jamais utilisé, d'où un gigantesque gaspillage), rajoutez un à la dimension du tableau, sur une ligne et laissez tous les autres indices tels qu'ils sont (c'est moins mauvais que d'oublier de corriger, quelque part dans un code -qui peut être touffu quoique fonctionnel- des dizaines d'indices de tableau)