I2C CONFUSION, Help needed please


Closed Thread
Results 1 to 40 of 43

Hybrid View

  1. #1
    Join Date
    Nov 2007
    Location
    West Covina, CA
    Posts
    219


    Did you find this post helpful? Yes | No

    Default Re: I2C CONFUSION, Help needed please

    Checked it. It fails on the first write statement.
    Okay let's fix that first.
    Put brackets around the Loc as shown in the PBP manual to see if that helps.
    Code:
    Main:
    High Led : Pause 500: Low Led : PAUSE 500
    	Addr=$36
    	I2CWRITE SDA,SCL,ADDR,[LOC],Fail  ' Test here first
    	Addr=$37 ': pause 10                    ' OR If SDA=1 then main 
    	I2CREAD SDA,SCL,ADDR,[LOC,VALUE] ',Fail
    	PAUSE 25
    	DEBUG  HEX Value,13,10
    	PAUSE 250
    	DEBUG "Done....",13,10
    WHILE 1 : WEND
    Goto Main
    
    Fail:
    	toggle portc.2
    goto main
    Last edited by LinkMTech; - 27th July 2013 at 19:56. Reason: Reply timing!
    Louie

  2. #2


    Did you find this post helpful? Yes | No

    Default Reaching there

    I did exactly the same as above and the sequence completed fine. BUT the values are not consistent with the datasheet, I should get '$2E' from location 0, but WHATEVER location I try to read, I am getting '$FF'

  3. #3


    Did you find this post helpful? Yes | No

    Default Update

    Have a look at my real term serial monitor. I am actually getting a lot of unexpected data which I don't understand how is getting stored in just one byte. Though among all this, I can see '2E' (but it is swapped around so 'E2'). Note sure if I am trying to convince myself or the data is rubbish.
    Attached Images Attached Images  

  4. #4


    Did you find this post helpful? Yes | No

    Default Re: Update

    Better in nibble setting. I can see '2E' repeated a few times.
    Attached Images Attached Images  

  5. #5
    Join Date
    Nov 2007
    Location
    West Covina, CA
    Posts
    219


    Did you find this post helpful? Yes | No

    Default Re: Update

    My bad, change the Read statement:
    Code:
    I2CREAD SDA,SCL,ADDR,[VALUE] ',Fail
    Louie

  6. #6


    Did you find this post helpful? Yes | No

    Default Re: I2C CONFUSION, Help needed please

    Still getting the same with the following code:

    Code:
    Value Var 	BYTE
    Addr	Var	byte
    Loc 	Var	Byte
    '---------------------------------------------------------
    Pause 500
    	DEBUG "Start......",13,10
    Value=0
    Loc=0
    
    Main:
    High Led : Pause 500: Low Led : PAUSE 500
    	Addr=$36
    	I2CWRITE SDA,SCL,ADDR,[LOC],Fail1
    	Addr=$37 : pause 10 ' Sometimes it is failing, leaving pause 10 makes it better.
    	I2CREAD SDA,SCL,ADDR,[VALUE] ,Fail2
    	PAUSE 25
    	DEBUG  Value,13,10
    	PAUSE 250
    	DEBUG "Done....",13,10
    WHILE 1 : WEND
    Goto Main
    
    Fail1:
    while 1:	toggle portc.2 : pause 50 : wend 
    goto main
    
    Fail2:
    WHILE 1
    	High Portc.2 : Pause 250 : Low PortC.2 : Pause 250
    WEND
    Attached Images Attached Images  

  7. #7
    Join Date
    Nov 2007
    Location
    West Covina, CA
    Posts
    219


    Did you find this post helpful? Yes | No

    Default Re: I2C CONFUSION, Help needed please

    What if you assign the Read/Write addresses before hand?
    Code:
    Value Var 	BYTE
    Addr	Var	byte
    Loc 	Var	Byte
    
    '---------------------------------------------------------
    Pause 500
    	DEBUG "Start......",13,10
    Value=0
    Loc=0
    WR_Add CON $36
    RD_Add CON $37
    
    Main:
    High Led : Pause 500: Low Led : PAUSE 500
    	'Addr=$36
    	I2CWRITE SDA,SCL,WR_Add,[LOC],Fail1
    	'Addr=$37 : pause 10 ' Sometimes it is failing, leaving pause 10 makes it better.
    	I2CREAD SDA,SCL,RD_Add,[VALUE] ,Fail2
    	PAUSE 25
    	DEBUG  Value,13,10
    	PAUSE 250
    	DEBUG "Done....",13,10
    WHILE 1 : WEND
    Goto Main
    
    Fail1:
    while 1:	toggle portc.2 : pause 50 : wend 
    goto main
    
    Fail2:
    WHILE 1
    	High Portc.2 : Pause 250 : Low PortC.2 : Pause 250
    WEND
    Question: Where is the "1" monitored at in these statements? Never seen it done this way before.
    Code:
    WHILE 1: WEND
    Louie

Similar Threads

  1. Sample code for I2C text LCD needed
    By Alexey in forum Code Examples
    Replies: 4
    Last Post: - 15th September 2011, 01:29
  2. TMR0 Confusion
    By retepsnikrep in forum mel PIC BASIC Pro
    Replies: 15
    Last Post: - 19th August 2011, 11:55
  3. HPWM confusion
    By lerameur in forum General
    Replies: 12
    Last Post: - 5th November 2006, 10:09
  4. HPWM confusion
    By rossfree in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 3rd November 2005, 16:50
  5. DIV32 confusion
    By dmairspotter in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 7th October 2005, 21:24

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts