Je cherche à simplifier un bout de code, mais je bloque sur un point !.
en effet suivant le résultat d'un test je dois effectuer tel ou tel fonction. C'est fonctions sont plutot proches et j'aurais souhaité les regrouper en une seule et même fonction .
Le hic c'est que dans une, j'ai une boucle de plus que dans l'autre!
Voici la première qui me permet de convertir une lettre de 32 octets :
Code : Tout sélectionner
//------------------Convertit une lettre composée de 32 Octets -----------------
// Paramètre d'entrée : la position dans le tableau "alphabet" du premier des 32 Octets
void affichage_Lettre2(unsigned int position){
i = j = k = m = valeur = 0;
for (k=0;k<=1;k++){
for (m=0;m<=1;m++){
position += m;
for (i=0;i<=7;i++){
for (j=0;j<=7;j++){
valeur += ( (((font16x8[(position+(k*15)+(j*2))])>>(7-i)) & (0x01)) << j ) ;
}
OLED_M_data(valeur);
valeur = 0 ;
}
}
}
}Et voici la seconde qui me permet de convertir une lettre de 16 octets :
Code : Tout sélectionner
//------------------Convertit une lettre composée de 16 Octets -----------------
// Paramètre d'entrée : la position dans le tableau "alphabet" du premier des 16 Octets
void affichage_Lettre(unsigned int position){
i = j = k = m = valeur = 0;
for (k=0;k<=1;k++){
for (i=0;i<=7;i++){
for (j=0;j<=7;j++){
valeur += ( (((font16x8[(position+(k*8)+j)])>>(7-i)) & (0x01)) << j ) ;
}
OLED_M_data(valeur);
valeur = 0 ;
}
}
}On voit dans la seconde il y a une boucle de moins la boucle m et quelques valeurs qui changent mais ca me j'en chargerais.
Je choisis donc suivant le résultat d’une comparaison d'effectuer soit la première soit la deuxième ;
Comment rendre conditionnelle une boucle ? je ne vois pas comment m'y prendre !
merci

