Autor Tema: PROGRAMA I2C EN PIC12f675  (Leído 4046 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gomdryyy

  • PIC10
  • *
  • Mensajes: 15
PROGRAMA I2C EN PIC12f675
« en: 21 de Enero de 2008, 16:32:45 »

HOLA ESTIMADOS AMIGOS, PUES LES CUENTO, ME ENCUENTRO HACIENDO UN PROGRAMA QUE SE COMUNICA CON EL PROTOCOLO I2C, Y EL CUAL CONTROLA UN PWM, LA VERDAD ES QUE SOY NUEVO CON ESTE PIC Y EN EL PROGRAMA CCS, BUENO LES COMENTO EL PROGRAMA HABER SI ME PUEDEN AYUDAR.

#include <12F675.h>  ///   libreria para el manejo del pic12f675
#use delay(clock=4000000)   ///   declara  la frecuencia del cristal


#use I2C(master, sda=PIN_A0, scl=PIN_A1) //para inplementar el codigo  de I2c

#fuses INTRC_IO,NOWDT,NOCPD,NOPROTECT,NOMCLR,PUT,NOBROWNOUT ///configura los fusibles


#byte TRISIO = 0x85
#byte GPIO = 0x05

#bit CRUZE = GPIO.3 //ASIGNA NOMBRE A ENTRADA DE CRUZE POR CERO
int dato;

void main(void)
{

TRISIO = 0b00001100; //Configuracion del puerto. '0' salida. '1' entrada.

     while(true)
    {

        dato = i2c_read(); aqui pretendo leer el dato que envie el master


         if(CRUZE == 1)
         output_high(PIN_A2);
         delay_ms(dato);      //el retardo depende del dato recibido con I2C   
         
         output_low(PIN_A2);


    }//fin de while infinito
}//fin de main


aun me falta hacer mas cosas, pero espero y me puedan ayudar se los agradesco de antemano

Desconectado gomdryyy

  • PIC10
  • *
  • Mensajes: 15
Re: PROGRAMA I2C EN PIC12f675
« Respuesta #1 en: 25 de Enero de 2008, 19:23:57 »
 MIS ESTIMADOS AMIGOS, PUES VEO QUE NADIE ME QUISO AYUDAR, BUENO NO HAY PROBLEMA EN OTRAOCACION SERA, BUENO LES COMENTO YA PUDE HACER LA COMUNICACION, Y LES PONGO EL CODIGO POR SI ALGUIEN LE INTEREZA,

Código: [Seleccionar]
#include <12F675.h>  ///   libreria para el manejo del pic12f675

#use delay(clock=4000000)   ///   declara  la frecuencia del cristal
 //para inplementar el codigo  de I2c

#use i2c(SLAVE, SDA=PIN_A0, SCL=PIN_A1, address=0xA0, FORCE_HW)

///configura los fusibles///****************************************************************

#fuses INTRC_IO,NOWDT,NOCPD,NOPROTECT,NOMCLR,PUT,NOBROWNOUT

#byte TRISIO = 0x85
#byte GPIO = 0x05
#bit PULSADOR1 = GPIO.3 //asigna nombre a un pin fisico
int incoming;


void main(void)
{

TRISIO=0b00001100; //Configuracion del puerto. '0' salida. '1' entrada.

     while(true)
    {
             i2c_write(0xA0);           
             incoming = i2c_read(0xA0);//lectura del bus i2c
             i2c_stop()
     
if(incoming<=0){incoming=0;}




if(incoming == 1){
output_high(PIN_A2);
delay_ms(1000);//*********ESTOS RETARDOS SON UN EJEMPLO. PUES ESTO SERA UN PWM
output_low(PIN_A2);
delay_ms(1000);}

if(incoming == 2){
output_high(PIN_A2);

delay_ms(3000);

output_low(PIN_A2);
delay_ms(1000);}



    }//fin de while infinito
}//fin de main

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: PROGRAMA I2C EN PIC12f675
« Respuesta #2 en: 29 de Enero de 2008, 14:48:30 »
Me alegro que finalmente lo consiguieras sin ayuda, es mucho más satisfactorio así.

Tu mensaje cumplía todos los requisitos para ser ayudado por cualquiera de los foristas, ya que has sido concreto y has aportado lo que llevabas hecho. Si nadie ha contestado estoy seguro que ha sido porque no lo ha leído (como era mi caso) o porque no podía o sabía. En ningún caso creo que haya sido por no querer.

En fin, te agradezco que hayas puesto la solución porque servirá de ayuda a quien lea tus mensajes en el futuro.