Test d'états d'entrées et sorties

Bonjour

Je cherche à collecter un état (1 ou-et 0) de (2 à 7) entrée sorties digitales pour activer une autre sortie.
Par exemple 1, 0, 0, 1, 0, 0, 1 = 1. , si un seul ou plusieurs différent, sortie = 0
1 = 5 volt et 0 = 0 volt.
J'ai beaucoup programmé mais pas encore en langage C.

Merci de m'éclairer svp
Michel

Merci

Si tu as tout tes pins sur un même port, tu peux grandement te simplifier le code. A supposer branché sur les pin D2 à D7 (soit PD2 à PD7) et activation si 7 et 4 à l'état haut :

if((PIND&0b11111100) == 0b10010000) digitalWrite( pinSortie, HIGH);
else digitalWrite( pinSortie, LOW);

Complément à Batto :

  1. les E/S sont groupées par “Port”. Chaque " port" est géré par des registres,
    Si le micro est un avr les registres sont de 8 bits et le nombre de pins par port est de 8.
    Les ports sont identifiés par des lettres.
    Attention les ports ne sont pas forcément complets.

  2. Pour les avr il existe 3 registres :
    DDRx. : positionne les pins du port x en entrée ou en sortie.
    PORTx :

  • si la pin est en entrée sert à activer les pull-up
  • si la pin est en sortie : écrit un 1 ou un 0
    PINx : permet de lire l’État des 8 pins du port en 1seule opération

Pour plus de détail consulter la datasheet du micro.

Complément : c’est moins souple qu’avec les fonctions Wiring/Arduino mais c’est hyper plus rapide.

Mouais...
Dans cette aplication, utiliser à tout prix les fonctions Wiring/arduino au lieu de lire directement les registres n'est pas optimum. Mais ce n'est pas une affirmation c'est juste un avis personnel

Surtout que Michel73 a écrit ceci :

J'ai beaucoup programmé mais pas encore en langage C.

Si je me contente pas du premier degré j'en conclu que ce n'est absolument pas un débutant et que la lecture de quelques pages de la datasheet ne devrait pas le déstabiliser.

Le seul "avantage" des fonctions Wiring/arduino est leur universalité : quelque soit le micro le code est le même, alors que pour les registres il faudra trouver dans la datasheet la lettre du port (A,B,C,D,E,F,G....)

Petite "rectification" :
A part les lettres des ports qui changent tous les avr (UNO,Mega,Léonardo) se programment de la même façon : Atmel n'est pas tombé sur la tête.

Est-ce que Michel73 veut faire un programme universel qu'il offrira, dans sa grande générosité, au monde entier ?
C'est à lui de voir mais je n'ai pas cette impression. Je suppose qu'il a un travail à faire, un point c'est tout.

Batto avait juste proposé une solution élégante et très rapide que pour ma part je l'ai un peu détaillée.
Ni l'un ni l'autre (Batto j'espère que tu m'autorise a parler pour nous deux) n'avons chercher ni à l'imposer ni à démolir systématiquement les autres propositions.

Michel à les billes en main, Comme d'habitude c'est Michel qui fera son choix.