Mardi 19 janvier 2010 2 19 /01 /Jan /2010 21:00

Le petit programme ci-dessous est écrit en c pour compilateur ccs.
La cible est un 16F877, la lecture se fait sur la liaison série.

Il ne faut pas faire d'erreur sur la programmation de la liaison série, sinon pas de lecture cohérente.
Il ne faut pas non plus fair d'erreur sur la fréquence programmée et celle du quartz, sinon le timing du capteur est erroné.

L'adresse du capteur ci-dessous est E00 comme généralement programmé lors de l'achat du capteur.


#include <16f877.h>
#fuses HS,NOPROTECT,NOWDT,BROWNOUT,PUT,NOLVP
#ORG 0x1F00,0x1FFF {} /* Reserve memory for bootloader for the 8k 16F876/7 */
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#use i2c (master, sda=PIN_C4, scl=PIN_C3)
 
main()
{
long range;
while(1)
 {
  i2c_start();                    //initate start condition
  i2c_write(0xE0);                //device address
  i2c_write(0x00);                //register address
//  i2c_write(0x50);                //set units to inches
  i2c_write(0x51);                //set units to centimeters
  i2c_stop();
 
  delay_ms(105);                   //wait for returning ping
 
  i2c_start();                    //initiate a new start condition
  i2c_write(0xE0);                //device address
  i2c_write(0x02);                //address of high byte register
  i2c_start();
  i2c_write(0xE1);                //device address but read

  range = i2c_read(1);         //read first byte and shift left
  range = range << 8;
  range += i2c_read(0);
  i2c_stop();

//  printf("range in inches = %lu\n\r", range[i]);
  printf("range in centimeters = %4lu\n\r", range);
    printf(" \n\r");
  delay_ms(100);
 }
}

Bonne chance

Par Alain CROSET - Publié dans : Logiciel - Communauté : Les robots
Ecrire un commentaire - Voir les 2 commentaires
Retour à l'accueil

Commentaires

I have been visiting various blogs for my dissertation research. I have found your blog to be quite useful. Keep updating your blog with valuable information... Regards
_____________________

doctoral dissertation
Commentaire n°1 posté par doctoral dissertation le 28/01/2010 à 14h51
Thanks for your comment and your support.
If you have a blog or a web page, tell me, I can add a link on mine.
Have a good dissertation.
Réponse de Alain CROSET le 29/01/2010 à 22h31

j'ai tester cette code mais il me donne toujour 0 comme résulta

Commentaire n°2 posté par fadhil le 24/05/2011 à 00h00

Présentation

Images aléatoires

  • dscn0491.jpg
  • p8120698.jpg
  • chassis1.jpg
  • PontsHetCPU.jpg
  • dscn0482.jpg
  • dscn0478.jpg

Recommander

Recherche

W3C

  • Flux RSS des articles

Widget Viadeo

Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus