Este es el codigo de mi main.h
#include <18F4620.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES H4 //High speed osc with HW enabled 4X PLL
#FUSES NOPROTECT //Code not protected from reading
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES BROWNOUT //Reset when brownout detected
#FUSES BORV21 //Brownout reset at 2.1V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOPBADEN //PORTB pins are configured as digital I/O on RESET
#FUSES NOLPT1OSC //Timer1 configured for higher power operation
#FUSES MCLR //Master Clear pin enabled
#use delay(clock=40000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3)
Y el siguiente es mi main.c... Como dije el sensor es el Am2320
Void Config();
void main()
{
char bufer[10];
unsigned long Modelo=0;
Config();
printf("Inicio de comunicacion i2c\n\r\n\r");
i2c_start();
i2c_write(0xB8 + 0x00);
i2c_write(0x03);
i2c_write(0x08);
i2c_write(0x07);
i2c_stop();
i2c_start();
bufer[0]=i2c_read(); //comando 0x03
bufer[1]=i2c_read(); //longitud de registro
bufer[2]=i2c_read(); //modelo High
bufer[3]=i2c_read(); //modelo Low
bufer[4]=i2c_read(); // Version
bufer[5]=i2c_read(); //ID
bufer[6]=i2c_read(); //ID 1
bufer[7]=i2c_read(); //ID 2
bufer[8]=i2c_read(); //ID 3
bufer[9]=i2c_read(); //CRC
i2c_stop();
// i2c_start();
//delay_ms(2000);
Modelo=((bufer[2] )| (bufer[3]>>
);
printf("\n\r Modelo %ld ",Modelo);
}
Void Config()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF|ADC_TAD_MUL_0);
setup_psp(PSP_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab
// TODO: USER CODE!!
set_tris_c(0xE8); //01101000
}