Are you aware that the ADDRESS and the CONTROL should be a variable and NOT a constant? Leave bit 0 clear of the CONTROL byte... the I2C routines will use it internally.
Are you aware that the ADDRESS and the CONTROL should be a variable and NOT a constant? Leave bit 0 clear of the CONTROL byte... the I2C routines will use it internally.
Hi Melanie, still on board, super ! and working on Sunday time !
Aratti .. sorry, I didn't see the word GOTO ...thanks ..
It is clear for me, that the control and address parameters are confusing for me ...
I understand from the example, this is used with Eprom familly
Control parameter is the main address
and
address parametre is used to point to the address location in the Eprom !
I use for long time I2C commands in the simple way like
I2CWRITE DataPin,ClockPin,Control,{Address,}[Value{,Value...}]{,Label}
example :
datapin var PORTA.1
clockpin var PORTA.2
Main:
I2CWRITE datapin,clockpin,$C2,[11,22,33,44],errorI2C
etc ...
etc ...
errorI2C:
flash a led ....
goto Main
As I do not understand Control and address story, I always use this and It works
with a lot of synthetisers (SP5055 familly)
Now I decided to be more serious ! and check the frequency lock flag
(bit 6 of the SP 5055 register)
that why I try to READ like that
flag var byte
I2CREAD datapin,clockpin,$C3, [flag], errorI2C
if flag.6 = 1 then continue
else
goto main
endif
continue:
etc ...
etc ...
nb: $C2 or $C3 I am not sure, but I can check the good value ..
thanks for your help
You did not understand my post... don't use CONSTANTS but use VARIABLES with I2C commands....
ControlByte var BYTE
.. ..
ControlByte=$C2
I2CREAD datapin,clockpin,ControlByte, [flag], errorI2C
Hello Melanie, morning ..
Oupps ...I will trust you as usual
I will test it today
thanks
I got it !
it works ..
my error was the missing brackets on the I2CREAD command
it seems that without the bracket the I2CREAD become a I2CWRITE !
I try using address $C2 or using a constant ... same results
thanks to everybody
francois
here is my HUGE code !
'*******************************************
'* Name : TX2300 avec 16F84 *
' Variable Definitions
SCL var PORTA.4
SDA var portA.3
LOCKBYTE var byte
Main:
I2CWRITE SDA,SCL,$C2,[$48,$F8,$AE,$FF],errorload
LOCK:
pause 100
I2CREAD SDA,SCL,$C2,[lockbyte]
Lcdout $FE, 1 ' Clear LCD screen
pause 50
lcdout "lock=", #lockbyte, " bit=", #lockbyte.6
pause 1000
goto lock
errorload:
Lcdout $FE, 1 ' Clear LCD screen
pause 50
lcdout "error load "
pause 1000
goto main
Bookmarks