​ ​ ​ ​ Uln2803 - Page 2
Page 2 of 2 FirstFirst 1 2
Results 11 to 15 of 15

Thread: Uln2803

  1. #11
    Senior Member
    Join Date
    Feb 2012
    Location
    France ( 28 )
    Posts
    518

    Default

    Quote Originally Posted by PapyJP View Post
    Peut-on écrire qqchose du genre: ARRET = NOT MARCHE
    J' ai mal posé ma question:
    Si j' écris ARRET = NOT MARCHE est-ce que le fait de faire MARCHE= 1 dans le corps du programme entraine ipso facto ( sans nouvelle ligne de prog ) ARRET = 0 et Lycée de Versailles ?

  2. #12
    Senior Member
    Join Date
    Nov 2011
    Location
    MARSEILLE
    Posts
    138

    Default

    Bonsoir à TOUS,et bonne Année,
    Pour en revenir à #1 : et si on mettait 2 x ULN2803 l'un derrière l'autre.....?

  3. #13
    Senior Member
    Join Date
    Jan 2010
    Location
    34 France
    Posts
    3,699

    Default

    Si j' écris ARRET = NOT MARCHE est-ce que le fait de faire MARCHE= 1 dans le corps du programme entraine ipso facto ( sans nouvelle ligne de prog ) ARRET = 0 et Lycée de Versailles ?
    ARRET et MARCHE seraient donc les symboles pour 2 bits différents ce qui est curieux.
    et si on écrit ARRET = NOT MARCHE cela n'implique pas que MARCHE = NOT ARRET

    Dans ce cas il faut définir
    symbole marche = bit7 par ex.
    marche = 1
    et utiliser NOT marche pour l'arrêt

    Quand on écrit MARCHE=0 ou 1 et ARRET=1 ou 0 on ne fait que définir une constante par un nom, en début de programme.

    Pour en revenir à #1 : et si on mettait 2 x ULN2803 l'un derrière l'autre.....?
    ben oui, deux inversions successives, mais il faut penser que l'ULN a des sorties collecteur ouvert, dont le potentiel doit être fixé par une R de pullup sur chaque sortie du premier...
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème . (Les Shadoks)

  4. #14
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    2,617

    Default

    Quote Originally Posted by PapyJP View Post
    J' ai mal posé ma question:
    Si j' écris ARRET = NOT MARCHE est-ce que le fait de faire MARCHE= 1 dans le corps du programme entraine ipso facto ( sans nouvelle ligne de prog ) ARRET = 0 et Lycée de Versailles ?
    Ben oui :
    Code:
    Symbol MARCHE=0
    Symbol ARRET=1-MARCHE
    
    Symbol ALLUME=1
    Symbol ETEINT=1-ALLUME
    
    
    Symbol RELACHE=0
    Symbol ENFONCE=1-RELACHE
    
    Symbol BOUTON=pinC.1
    symbol VOYANT=pinC.2
    
    sertxd ("MARCHE=",#MARCHE," ARRET=",#ARRET,13,10)
    sertxd ("ALLUME=",#ALLUME," ETEINT=",#ETEINT,13,10)
    sertxd ("RELACHE=",#RELACHE," ENFONCE=",#ENFONCE,13,10)
    
    if BOUTON=ENFONCE then
          VOYANT=ALLUME
    else
          VOYANT=ETEINT
    endif
    Pour répondre à M. PieM, il est tout à fait possible d'utiliser des noms de constantes adaptées au contexte, y compris sur des entrées et sur des sorties, indépendamment des tensions requises pour chaque état.
    De la sorte, lorsque l'on écrit le programme on se moque totalement de savoir si on est en "logique positive" ou "négative".
    A la limite, on essaie, et si on n'est pas dans le bon sens, on change la constante au début du code, et basta cosi...

    Notez également que s'agissant de constantes, tout ceci consomme zéro octet de programme, donc pourquoi s'en priver ?
    There are 10 types of people in the world: those who understand binary, and those who don't.

  5. #15
    Senior Member
    Join Date
    Jan 2010
    Location
    34 France
    Posts
    3,699

    Default

    Quote Originally Posted by BESQUEUT View Post
    Ben oui :
    [code]
    Symbol MARCHE=0
    Symbol ARRET=1-MARCHE


    la question était:
    Si j' écris ARRET = NOT MARCHE est-ce que le fait de faire MARCHE= 1 dans le corps du programme entraine ipso facto ( sans nouvelle ligne de prog ) ARRET = 0 et Lycée de Versailles ?
    Si on définit une constante Marche = 0
    écrire ARRET=1-MARCHE est évidemment écrire qu'arret est egal à 1 puisque marche est remplacé par 0 par le préprocesseur.
    mais en aucune façon , en cours de programme, si on redéfinit seulement l'un, cela modifie l'autre! Ce n'est pas en écrivant que MARCHE = 1 que ARRET va devenir = 0
    De plus il est impossible de redéfinir une constante à l'intérieur du programme puisqu'elle n'existe plus en tant que symbole.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème . (Les Shadoks)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •