Révision 804
Ajouté par albeaufour il y a presque 4 ans
SP4c12.c | ||
---|---|---|
|
||
#define plcd p3;
|
||
|
||
//Fonction initialisation//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
void init_portserie(void)
|
||
{
|
||
u0mr = 0b00000101; // 4800 bauds, 8 bits de donn?es, 1 bit de stop, pas de parit?
|
||
... | ... | |
u0smr = 0;
|
||
u0c0 = 0b00010000; //configuration F = 20 Mhz
|
||
u0brg = 0xFF; //configuration de m = 255
|
||
u0c1 = 0b00010001;
|
||
pd6 = pd6 || 0b00001000; //faux mais il faut changer juste les bits de poid faible
|
||
ps0 = 10001000;
|
||
u0c1 = 0b00000101;
|
||
pd6_3 = 1;
|
||
pd6_2 = 0;
|
||
pd6_1 = 0;
|
||
pd6_0 = 0;
|
||
ps0_3 = 1;
|
||
ps0_2 = 0;
|
||
ps0_1 = 0;
|
||
ps0_0 = 0;
|
||
}
|
||
|
||
//Fonction transmission/reception//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
void transmission (char c)
|
||
{
|
||
while (ti_u0c1 = 1)
|
||
{u0tb = c;}
|
||
while (ti_u0c1 != 1);
|
||
u0tb = c;
|
||
}
|
||
|
||
char reception ()
|
||
{
|
||
|
||
void main(void)
|
||
while (ri_u0c1 != 1);
|
||
return(u0rb);
|
||
}
|
||
|
||
//Fonction lecture trame//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
int rectrame (char * buffer)
|
||
{
|
||
int i=1;
|
||
do
|
||
{
|
||
*(buffer+i) = reception();
|
||
i++;
|
||
}while(*(buffer+i)!= '*');
|
||
return (i+1);
|
||
}
|
||
|
||
void creation_tab_trame (int col, int *lig,char tram[80],char tab_tram[10][80])
|
||
{
|
||
int i;
|
||
for (i=0;i<=col;i++)
|
||
{
|
||
tab_tram[*lig][i]=tram[i];
|
||
}
|
||
*lig++;
|
||
}
|
||
|
||
char valeur;
|
||
char trame[80];
|
||
char tab_trame[10][80];
|
||
void main(void) //reception de caract?re
|
||
{
|
||
|
||
int i,nb,ligne;
|
||
//initialisation des led en sortie
|
||
init_portserie();
|
||
nb=rectrame (trame);
|
||
creation_tab_trame(nb,&ligne,trame,tab_trame);
|
||
if (ligne==10){ligne=0;}
|
||
}
|
||
|
||
/*void main(void) //Transmission de caract?re
|
||
{
|
||
int i;
|
||
init_portserie();
|
||
while (1)
|
||
transmission ('A');
|
||
for (i=0;i<26;i++)
|
||
{
|
||
transmission ('A'+i);
|
||
}
|
||
}
|
||
|
||
*/
|
Formats disponibles : Unified diff
TP C2 commit fin de séance