Café Du Web - Forums

Le journal Cafeduweb => Informatique, Home ciné, Logiciels,... => Discussion démarrée par: kingspy le mai 05, 2004, 11:42:34

Titre: Probleme De Programmation
Posté par: kingspy le mai 05, 2004, 11:42:34
Bon voila en stage je dois realiser une interface lcd grafique évolué de A à Z (la carte gere un ecran, un clavier matriciel 5*5, 3protocoles differents de communication) et divers module secondaire.
La partie partie graphique fonctionne correctement et les protocoles sont en cour, le probleme vient de la partie la plus simple evidament ;) .

Je sais cela manque d'elegance et d'optimisation mais bon vu que sa refuse de marcher j'ai fais o plus simple.
Le registre.h stoke toute les adresses de mes ports, registres et mes variable globales.

Le programme rentre bien dans l'interruption lorsque l'on presse une touche mais fait n'importe quoi apres.
Le PORTC  permet de scanner le clavier et le portf recupere la touche presser.


#include <registre.h>  
#pragma TRAP_PROC SAVE_REGS
void interrupt ei1 (void)   //declencher sur interruption clavier
{ char col,x,z,t,ligne1,ligne2;

ligne1=*PORTF&0x07; //ligne determiner

t=0x00;z=0x01;

rebond=0x0F;
clav_rebond();     // temps de rebond     (52ms par defaut)

while(t<0x08)
    {
                t++;
                *PORTC=z;
   z=z*2;
   Tempo_1m();
   x=(*PORTF&0x07);

   if(x==ligne1)
   col=t; // colonne determiner      
     }

if(col==0x08) // si colone non trouvée
col=0;   

t=Tab_clav[ligne1][col]; // transforme ligne colone en un caractere
 
ligne2=ligne1;   // Atta le relachement de la touche
while(ligne1==ligne2)
   {   ligne2=*PORTF&0x07; }


*PORTA=~*PORTA;  // sert verifier que l'interuption fct (connecter à des LED)

BUFFER[Cur_buffer]=t; //affiche la lettre pressée  
Cur_buffer++;

clav_rebond();     // temps de rebond     (52ms par defaut)
*PORTC=0xFF;

}

shema du clavier:
PORTC(5bits)
 | | | | |
OOOOO--
OOOOO--
OOOOO--Codeur 8par3 => PORTF(3bits)
OOOOO--
OOOOO--


Le debugueur de l'entreprise mais plus de 10min pour realisé juste l'initialisation :( et ne gere pas les interruption  donc je fais tout au filing avec mes led  <_<

Si quelqu'un trouve qu'il me fasse signe.  :bye:  
Titre: Probleme De Programmation
Posté par: Alban le mai 05, 2004, 12:17:20
Je passe :D

kingspy tu as un problème juste pour l'initialisation du programme qui est trop longue ?

:bye:
Titre: Probleme De Programmation
Posté par: kingspy le mai 05, 2004, 12:30:58
non l'initialisation marche tres bien c juste leur debuggeur qui va pas une canette  :bye: