Salut,
[PASSEZ LE DEBUT SI VOUS ETES PAS INTERESSES]
Je travaille sur mon travail de fin d'etudes. J'utilise un serveur web embarque de la societe BECK : AMD80186, 512 Ko RAM, 512 Ko flash, le tout dans un boitier de 5*4*1 cm.
Plus d'infos sur mon site dedie a ce projet :
http://www.multimania.com/beckproject
Je programme en C, avec Borland C++ 5.02, en DOS Standard, Large Memory, en 80186 (je me sert d'un PC, puis je copie l'executable dans la memoire du Beck comme si j'uploadait un fichier sur un serveur. Ensuite par un terminal, j'execute mon programme avec le processeur du Beck.
Sur le BECK, il y a 8 inputs/ouputs. On peut recevoir l'etat de chaque input dans une variable INT par ex, et commander des outputs en sortie. Par exemple, je branche un contact a une porte, je connecte ce capteur sur un input, je fais un prog qui verifie si ma porte est tout le tps fermee, et si elle s'ouvre je declenche une sirene (par un relais) ou j'envoie un SMS a qqn. Compris ?
MON PROBLEME
Un encodeur est un appareil qui envoie un signal 000000... quand son axe est a l'arret, et qui envoie 010101010101.... quand il tourne. Plus il tourne vite, plus les transitions sont rapides. Mon but est de compter ces pulses, afin de determiner la vitesse de rotation de l'axe.
J'ai un probleme de delais car je travaille a haute frequence. Je peux en effet recevoir 2-3000 pulses par seconde, et je n'arrive pas a les compter (en dessous de 1000 pulses/seconde c'est OK)
J'ai ecrit un prog classique en C, qui tourne en boucle et qui compte les changements d'etats. Mais sur le forum de Beck on me dit que c'est pas bien de faire ca, car je surcharge mon systeme, etc.
D'ou on me conseille d'utiliser les interruptions... mais il y a nue semaine je ne savais pas ce qu'etais une interruption... bref auriez-vous une idee generale de comment je pourrais utiliser les interruptions pour ne pas utiliser le pauvre 80186 a plein regime ?
Je suis prenneur de toute BONNE documentation.
Pour plus de details n'hesitez pas.
Merci