Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Rmanzoli en 15 de Octubre de 2019, 10:24:03
Título: 16f15376 periférico i2c mplab xpress
Publicado por: Rmanzoli en 15 de Octubre de 2019, 10:24:03
Bom dia à todos. Sou novo no fórum, logo, gostaria que tivessem paciência, caso minha dúvida ou erro seja trivial. Adquiri há muitos anos um pic 16f15376. Comecei a tentar aprender a utilizá-lo e consegui progresso nos periféricos EUSART, NCO, PWM, converso AD, protocolo SPI.... mas infelizmente o protocolo i2c não foi possível. Como estou bastante tempo tentando e sem sucesso, vim pedir a ajuda de vocês.
Criei a função abaixo, para que eu pudesse pesquisar no barramento qual é o endereço do dispositivo escravo (no caso, um display Oled ssd1306 128x32):
// check if there is space in the queue if (i2c1_object.trStatus.s.full != true) { I2C1_MasterWriteTRBBuild(&trBlock, pdata, length, address); I2C1_MasterTRBInsert(1, &trBlock, pflag); } else { *pflag = I2C1_MESSAGE_FAIL; } }
São várias funções, vou tentar anexar o código todo.
Desde já, agradeço qualquer ajuda que possa me fazer conseguir ter sucesso.
Título: Re:16f15376 periférico i2c mplab xpress
Publicado por: KILLERJC en 15 de Octubre de 2019, 22:47:53
Citar
I2C1_MasterWrite(x, 1, adress, &status);
Código: C
I2C1_MasterWrite(&x,1, adress,&status);
Por que es un char, si fuera un array [] no habria problemas.
Y x son los datos a enviar, si tu I2C necesita : Direccion, Comando, Datos. Ejemplo:
Direccion Registro OLED: 0x0004 Comando: 0x12 Datos: 0x38, 0x41, 0x43
Título: Re:16f15376 periférico i2c mplab xpress
Publicado por: Rmanzoli en 03 de Noviembre de 2019, 04:13:16
Olá amigo. Obrigado pela resposta. Realmente o endereçamento estava para 8 bits ...e o programa necessitava um de 16 bits. Realizei essa alteração, mas infelizmente o dispositivo (é como se o módulo I2C não ligasse) não gerou as ondas quadras nas saídas selecionadas.
Título: Re:16f15376 periférico i2c mplab xpress
Publicado por: Rmanzoli en 15 de Noviembre de 2019, 10:50:29
Mais alguém pode me ajudar ? Toda ajuda é bem vinda!!