Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

08/06/2016 #21
Moderador

Avatar de D@rkbytes

Ahí tienes la librería para el MMA7660 en el post #19
El programa para el cual la quieras usar, ya corre por tu cuenta.
11/06/2016 #22


Funciona Perfecto!!!
Muchas gracias. Funciona perfecto.
El problema que tenía, era que tenía el acelerómetro mal soldado.
Me di cuenta cuando desde el PIC, intenté buscar el dispositivo i2C y no respondía.

Os dejo este código que es muy útil para detectar los dispositivos conectados al bus I2C.
Lo he probado y también funciona perfectamente.
Te devuelve los dispositivos conectados y la dirección de cada uno de ellos.

Aquí está el código:
Código PHP:
#include <16F887.h> 
#fuses INTRC_IO,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT 
#use delay(clock=4M) 
#use i2c(Master, sda=PIN_C4, scl=PIN_C3) 
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS) 

// This function writes the slave address to the i2c bus. 
// If a slave chip is at that address, it should respond to 
// this with an "ACK".   This function returns TRUE if an 
// ACK was found.  Otherwise it returns FALSE. 
int8 get_ack_status(int8 address

int8 status

i2c_start(); 
status i2c_write(address);  // Status = 0 if got an ACK 
i2c_stop(); 

if(
status == 0
   return(
TRUE); 
else 
   return(
FALSE); 



//================================= 
void main() 

int8 i
int8 status
int8 count 0

printf("\n\rStart:\n\r"); 

delay_ms(1000); 

// Try all slave addresses from 0x10 to 0xEF. 
// See if we get a response from any slaves 
// that may be on the i2c bus. 
for(i=0x100xF0i+=2
   { 
    
status get_ack_status(i); 
    if(
status == TRUE
      {  
       
printf("ACK addr: %X\n\r"i); 
       
count++; 
       
delay_ms(2000); 
      } 
   } 

if(
count == 0
   
printf("\n\rNothing Found"); 
else 
   
printf("\n\rNumber of i2c chips found: %u"count); 

while(
1); 

Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.