12 bit core have some limited support, so the 'hand-made' or asm solution have it's own benefits.
Did you looked over there...
http://melabs.com/support/12-bit.htm
I2CRead, I2CWrite: The I2C clock and data pins are fixed at compile time by Defines. They still must be specified in the I2CRead and I2CWrite statements, though this information is ignored by the compiler.
Define I2C_SDA PORTA,0
Define I2C_SCL PORTA,1
Because of memory and stack constraints, the Define for I2C_SLOW does not do anything. Low-speed (100 kHz) I2C devices may be used up to 4MHz. Above 4MHz, high-speed (400kHz) devices should be used.
The Define for I2C_HOLD has no effect.
'
'
'
'
'
.....Many library routines, such as I2CRead, are fairly large. It may only take a few routines to overrun the first 256 words of code space. If it is necessary to use more library routines that will fit into the first half of the first code page, it will be necessary to move to a 14- or 16-bit core PICmicro MCU instead of the 12-bit core device.
are you using multiple I2C line or you used it in a sub? I feel the sub idea may help.
Last edited by mister_e; - 6th December 2007 at 01:13.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks