TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: black_flowers en 01 de Julio de 2007, 16:44:57
-
hola, se de una libería que emula i2c (#use i2c(Master,sda=PIN_C4, scl=PIN_C3)) la pregunta es ¿hay alguna librería en ccs para utilizar el modulo i2c sin emularlo por los pines??
saludos.
-
El compilador CCS emula el I2C si no tiene el hardware preciso para trabajar con el I2C o utilizamos otros pines distintos. De echo la seudo-instrucción que has puesto puedes obligarle al compilador a utilizar el hardware con la siguiente opción:
FORCE_HW => Use hardware I2C functions
de tal forma que quedaría:
#use i2c(Master,sda=PIN_C4, scl=PIN_C3, FORCE_HW)
Un saludo
-
Como bien dice jfh900 el CCS utilizará el hardware I2C si le ponemos la directiva FORCE_HW.
Pero MUY IMPORTANTE: Sólo si los pines que uses sean exactamente los que el PIC tiene definidos para el I2C (ver su datasheet para saber cúales son).
-
por supuesto, si se utiliza el modulo de i2c se tendrán que utilizar los pines que el pic tiene habilitados para ello.
un saludo. y gracias :-)
-
Si, pero el comentario no es banal, porque CCS no dice nada cuando lo hace por hardware o lo simula por software.
Si por un error o por desconocimiento ponemos mal los pines, imagina por ejemplo que intercambiamos SCL con SDA, el compilador lo simula por software y continúa tan campante, y nosotros creyendo que estamos usando el módulo hardware cuando no es así.
-
Buenas. La opción de forzado por hardaware viene comentada (eso,si de forma somera) en el manual o la ayuda en línea del ccs.
rastman