bonjour a tous
voila je veut communiquer entre plusieurs micro contrôleur en uart j'ai trouver sur le site d'atmel des exemple
http://www.atmel.com/dyn/products/to...p?tool_id=3420

alors je voulait utilise le mode 3 pour que chaque micro contrôleur réponde a une adresse
mais si j'utilise le code qui me donne mon micro répon a tout les adresse en regardant sur le net j'ai trouver sa
http://perso.orange.fr/michel.hubin/...p/chap_mp3.htm
http://www.mcumaster.com/8051/regist...DDR/saddr.html
même version traduit par google
http://translate.google.com/translate?hl=fr&sl=en&u=http://www.mcumaster.com/8051/registers/SADDR/saddr.html&sa=X&oi=translate&r esnum=2&ct=result&prev=/search%3Fq%3DSADDR%2B8051%26hl %3Dfr%26lr%3D%26client%3Dfiref ox-a%26rls%3Dcom.ubuntu:en-USfficial%26sa%3DG

si je comprend bien le 9 eme bit dit si s'est une adresse ou une donner et l'interruption devrait avoir lieu seulement si l'adresse est valide mais mois il y a toujours l'interruption
alors j'arrive a tester manuellement si l'adresse est correcte mais si il y a un registre SADDR et SADEN s'est bien qu'il doit pouvoir le faire tout seule

voila si vous avec un autre exemple de code pour un uart a ip je suit preneur

voici la solution que j'utilise pour le moment

void serial_IT(void) interrupt 4
{
if(TI == 1)
{ //if reception occur
TI=0; //clear transmition flag for next transmition
TxOK=0; //clear software transmition flag
}

if(RI == 1)
{ //if reception occur
RI = 0; //clear reception flag for next reception
if(RB8)
{
SM2=!(AD_MOTEUR==SBUF); //passe en mode data seulement si SBUF est egale a l'adresse
}
else
{
{
cordonner_uart = SBUF; //Read receive data
r_uart=1;
echo=1; //enable echo
}
SM2=1; //return into address mode after receive data
}
}
}