Go Down

Topic: interrupt, 74hc165 et shiftIn (Read 575 times) previous topic - next topic

ST

Apr 18, 2010, 11:53 pm Last Edit: Apr 19, 2010, 08:32 am by Soultracker Reason: 1
Bonjour,

Quelqu'un aurait-il déjà eu l'idée d'utiliser un interrupt avec une 74hc165?

Sur mon interface de contrôle, j'ai 6 boutons reliés à ma 74hc165. Je récupère sans problème la valeur des 6 (façon serial, comme indiqué dans le tuto). ça fonctionne bien quand tout ça est dans loop().

Je voulais attacher mes contrôles à un interrupt et faire en sorte que lorsqu'un des boutons est pressé, l'ISR (IRQroutine) se met en route et fait ce qu'elle a à faire.
Mais voilà, pour tester:
Code: [Select]

#include <LiquidCrystal.h>//LCD
//definition

const int latchPin= 4;
const int dataPin= 3;
const int clockPin= 2;

LiquidCrystal lcd(9, 8, 10, 11, 12, 13);

volatile int interact=0;

//prototype
void UserAction();

void setup () {
 lcd.begin(16,2);
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, INPUT);

 attachInterrupt(1,UserAction,CHANGE);

}

void loop (){
  if(interact==1)
     {
       lcd.clear();
       lcd.print("ok");
       delay(500);
       interact=0;
     }
   else
     {
       lcd.print("nope");
     }
}

void UserAction(){
interact=1;
}


Rien de compliqué, me semble-t-il.

Où: Q7 (dataPin) de la 74hc165 est connecté sur DP3 (alias interrupt 1)

Résultat: il ne m'affiche "ok" que lorsque je pousse sur le bouton ayant l'adresse 0x80.

Si quelqu'un l'a déjà fait... je veux bien l'info, ou tout autre avis
:-?

Merci

ST

Si ça intéresse quelqu'un j'ai résolu mon problème en installant un porte OU (fait main avec des diodes) à laquelle son reliés les boutons.
La porte OU est reliée à la pin 3 (interrupt 1).
Dès qu'un bouton des 6 boutons est pressé, l'ISR se met en route.


moustic

Salut, je serais vraiment intéressé par un petit schema du montage. tu peux mettre ça ?

Go Up