netdefense
Messages postés7Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention13 août 2009
-
18 mars 2006 à 15:01
netdefense
Messages postés7Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention13 août 2009
-
19 mars 2006 à 11:56
Bonjour a tous,
Je suis en train de réaliser un projet en BTS electronique qui consiste a créer un menu de configuration d'un composant horodateur sur afficheur LCD. J'ai ecrit un bout de programme j'aimerai savoir si vous voyez des erreurs ou pas car je n'ai pour l'instant pas les moyen de tester mon programme.
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 18 mars 2006 à 20:10
On peut savoir sur quel cible tu dois mettre le programme?
D'apres mes lointains souvenirs, je n'ai connu qu'un compilo suffisament mal fait qui pour un lcd_putc accepte sans broncher des chaines de caractères. Utiliserais-tu par hasard CCS? (et si c'est le cas, j'en déduis que tu dois programmer sur PIC).
Pour etre tout a fait franc avec toi, en embarqué, on ne peut pas développer un code sans le tester. Dans l'absolu, meme si tout est sensé marché, il y a toujours une annerie qu'on a pas vu, un registre qu'on a pas bien initialisé.
Je vais jeter un coup d'oeil à ton code, mais te dire s'il va marcher ou pas, c'est impossible. Ca dépend trop du matériel.
Bon maintenant que j'ai regarder un peu.
Alors déja, faire des #include de fichier c, c'est a bannir (mais si tu utilises CCS, puisque qu'il prefere ca a des fichiers h....)
Ensuite, faudra que tu vérifies ce que te renvoies ton clavier. C'est un clavier de 16 touches, penses-tu qu'il va te renvoyer la lettre E ou plutot la valeur numérique 0x0E? Moi je dirais plutot 0x0E, mais toi tu as fait le contraire. Pareil pour les 0, 1, 2.... Attention à la différence entre '0' et 0.
Apres, ben je te dirais de tester au fur et a mesure en commencant par le LCD, puis le clavier.
Ah si, regarde aussi comment fonctionne kbd_getc().
Est-ce qu'elle attend qu'une touche du clavier soit enfoncée, ou est-ce qu'elle te renvoie une valuer bidon si aucune touche n'est enfoncée? (en gros bloquante ou non).
Bon courage.
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 18 mars 2006 à 20:13
Non sérieusement je peux pas m'en empecher!!
Comment est-ce que cette p... de fonction fait pour marcher????
lcd_putc(0x7E); --> Je lui donne un caracètre
lcd_putc(" Reglage heure\n"); --> Et la une chaine de caractères (un pointeur quoi).
Et je suppose que tu n'as meme pas eu de warning pour ca!
CCS, tssss
PS: Désolé si c'est pas CCS que tu utilises, il m'est tellement resté en travers de la gorge que...
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
netdefense
Messages postés7Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention13 août 2009 19 mars 2006 à 11:16
Oula ! Bon apparement j'ai encore d'enorme progrés a faire en C :)
Déjà en effet je travail sur PIC16F876 dsl j'avoir omis de le preciser. Et effectivement j'utilise CCS.
JE voudrais déjà savoir pk faire des #include de fichier .C c'est a exclure ?
Pour le fonctionnement du clavier j'avoue que j'ai du mal a tout comprendre donc je vais mettre le code du fichier KBD16TOUCHES.C en debut d'aprem car je ne suis pas chez moi la et si tu peux me dire les reponses aux questions que tu me pose dans ton premier message ca m'aiderai bien pck je me suis posé les meme question mais sans trop etre sur de mes reponses. (Bien qu'il me semble qu'effectivement la fonction kbd_getc( ) n'attend pas un appui de touche mais renvoi plutot la valeur "\0")
Et pour cette histoire de lcd_putc(0x7E) et lcd_putc(" Reglage heure\n"); je comprend pas trop le problème que ca pose ?
Escuse moi pck j'avoue que je suis loin d'etre bon en C et il doit surement y avoir des enorme boulette lol :) En tout cas merci beaucoup pour ton aide ca m'ai vraiment utile et puis pour le code du fichier KBD16TOUCHES.C je le met très vite sur le site.
netdefense
Messages postés7Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention13 août 2009 19 mars 2006 à 11:56
Voilà le fichier KBD16TOUCHES.C
#if defined(__PCH__)
#if defined use_portb_kbd
#byte kbd = 0xF81 // This puts the entire structure
#else
#byte kbd = 0xF83 // This puts the entire structure
#endif
#else
#if defined use_portb_kbd
#byte kbd = 6 // on to port B (at address 6)
#else
#byte kbd = 8 // on to port D (at address 8)
#endif
#endif