Cherche code en c pour clavier 16 touches

Résolu
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007 - 3 janv. 2007 à 11:33
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 5 janv. 2007 à 14:52
bonjour a tous
je suis etudiant en conception electronique et j'ai mon prof qui nous a demandé de faire une fonction en c pour decoder un clavier 16 touches.Mais je ne vois pas comment ????
alors si quelqu'un avait une idée je le remerci d'avance...

12 réponses

wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
3 janv. 2007 à 14:03
si tu nous disait comment marche ton clavier sa serait plus pratique :) USB, RS232
? il y a un PIC pour gerer ? etc...
3
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
3 janv. 2007 à 14:46
desolé mais je suis debutant...
alors voila, le clavier fonction  en  RS232 et il y a un pic de microchip le 18f4520
si besion de plus d'info merci de me le préciser...
merci à tous
3
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
3 janv. 2007 à 15:57
tu bessoin d'une puce MAX232 mais c pas obligatoire.
jete un oeil sur http://www.planete-sciences.org/forums/viewforum.php?f=5

apres simplement, quel logiciel de Code PIC utilise tu ? CC5X

dit moi quel logiciel et je t'ecris un debut.
3
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
3 janv. 2007 à 16:26
super c'est sympa
alors je travaille sur mplab mc18
Pour la max 232 je l'avais prevu
je te remerci pour le liens
a+
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
3 janv. 2007 à 18:59
c18 oula, le je connai mal la prog avec C18.
mais en gros :
ton PIC tu fais if(input(PIN_AX)) { envoi message RS232 }
3
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
3 janv. 2007 à 21:05
ok  merci je vais essayer de faire quelques chose..
 je vois  une solution mais je sais pas si c'est bon??

ecrire sur le port a "0111"
et lire le port b
si port b"0111"
alors afficher '0'
etc... jusqu'a f

une ptite info
mon prof nous a demandé si il y avait deux touches de presser il faut r'envoyer ff
as tu idée???
merci pour les infos ..
a+
3
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
5 janv. 2007 à 00:47
Un clavier 16 touches qui marche en RS232????
Qu'est ce que c'est que ca?
Je serais bien curieux de savoir de quel clavier il s'agit!!!

A mon avis tu as un clavier des plus classiques, qui se branche directement sur ton microcontroleur (en prenant soin de mettre des pull-ups ou d'activer les pull-up internes du PIC si tu es sur le bon port). Et toi ce que tu cherches à faire, c'est lire la/les touches pressées sur le clavier et renvoyer cette information sur une liaison série, mais tu as certaineemnt pas un clavier RS232!

Confirme moi que je t'aide plus en avant ensuite, mais arretez un peu d'halluciner avec vos claviers 16 touches en RS232 ou USB!
Attention, la ca demande aussi un peu d'élec, et ça c'est une science qui ne s'invente pas non plus. (bien que avec un PIC...).

wxxxxw >> "logiciel de Code PIC", qu'est ce que c'est que ça? Comme pour du code PC, on utilise un compilateur pour compiler du C, c'est certainement pas un logiciel qui génere du code tout seul.
Pour ta gouverne, CCS est la pire daube qui puisse exister pour compiler du C, je te conseille vivement le passage à C18 ou HTPIC18. Je n'ai jamais vu un compilateur aussi peu respectueux des standards du C, j'aurais même tendance à dire qu'il compile un language qui n'est pas du C, mais une invention stupide de leur part.
CCS est connu et utilisé uniquement parcque c'est le premier compilateur C pour PIC qui est sorti sur le marché, mais franchement, je me demande bien comment il fait pour survivre maintenant!

krimzoug >> Quels sont tes branchements? Tu as mis quoi sur le port A du pic, quoi sur le port B? C'est bien beau de nous dire j'écris ca sur tel port, ça sur l'autre, si on sait pas ce qu'il y a derrière....
Vive le C
Savon
3
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
5 janv. 2007 à 14:45
slt
En faite mon clavier est un standar..
il est connecté directement sur le pic en mettant les pull-up
j'écris sur le port a les lignes du clavier et j'écris les colones sur le port b.
le compilateur que j'utilise est le c18 sous mplab
je voudrais faire un prog en mode interuptif.
 si une touche est pressée j'envois la valeur sur un lcd..
si 2 touche sont je renvoi ff..
desolé je suis un debutant en c..
c'est pas facile...
a+
0
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
5 janv. 2007 à 14:46
slt
En faite mon clavier est un standar..
il est connecté directement sur le pic en mettant les pull-up
j'écris sur le port a les lignes du clavier et j'écris les colones sur le port b.
le compilateur que j'utilise est le c18 sous mplab
je voudrais faire un prog en mode interuptif.
 si une touche est pressée j'envois la valeur sur un lcd..
si 2 touche sont pressée je renvoi ff..
desolé je suis un debutant en c..
c'est pas facile...
a+
0
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
5 janv. 2007 à 14:46
slt
En faite mon clavier est un standar..
il est connecté directement sur le pic en mettant les pull-up
j'écris sur le port a les lignes du clavier et j'écris les colones sur le port b.
le compilateur que j'utilise est le c18 sous mplab
je voudrais faire un prog en mode interuptif.
 si une touche est pressée j'envois la valeur sur un lcd..
si 2 touche sont pressée je renvoi ff..
desolé je suis un debutant en c..
c'est pas facile...
a+
0
krimzoug Messages postés 8 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 5 janvier 2007
5 janv. 2007 à 14:46
slt
En faite mon clavier est un standar..
il est connecté directement sur le pic en mettant les pull-up
j'écris sur le port a les lignes du clavier et j'écris les colones sur le port b.
le compilateur que j'utilise est le c18 sous mplab
je voudrais faire un prog en mode interuptif.
 si une touche est pressée j'envois la valeur sur un lcd..
si 2 touche sont pressée je renvoi ff..
desolé je suis un debutant en c..
c'est pas facile...
a+
0
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
5 janv. 2007 à 14:52
Je ne suis pas certain qu'en mode interruptif ça puisse fonctionner.
Le port A n'a aucune interruption sur des changements d'états, donc pas possible de faire fonctionner ca en interruption.
Ce que tu peux faire pour t'approcher d'un mode interruptible, c'est utiliser les timers.

Tous les x ms, tu vas lire l'état de ton clavier, et quand il change, c'est qu'il s'est passé qqch (relachement ou pression).
Avec une méthode comme ça, tu vas interroger ton clavier de manière interruptiible, à intervalle de temps régulier, mais ton clavier lui n'est pas interruptible.

Sinon, la méthode un peu "barbare" serait du polling sur ton clavier. C'est plus simple à coder, mais beaucoup moins propre.
Attention aux rebonds avec une méthode comme ca, comme avec la précédente d'ailleurs.

Vive le C
Savon
0
Rejoignez-nous