I2C CONFUSION, Help needed please


Closed Thread
Results 1 to 40 of 43

Hybrid View

  1. #1


    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  

  2. #2
    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

  3. #3


    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  

  4. #4
    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

  5. #5


    Did you find this post helpful? Yes | No

    Default Re: I2C CONFUSION, Help needed please

    The manual says do not use constants for address.
    Though I tried the above but the result is the same.

    While 1 : Wend - I just put this just like that to halt the code.

  6. #6
    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

    Oh yeah, no Constants.
    Then give it to him straight!

    Have you tried clearing the LOC and Value variables at the beginning of each loop just in case? Start with a clean slate every time.
    Code:
    Main:
        Loc=0
        Value=0
    High Led : Pause 500: Low Led : PAUSE 500
        I2CWRITE SDA,SCL,$36,[LOC],Fail1
        I2CREAD SDA,SCL,$37,[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
    You're so close, I can smell it!
    Or was that someone in the room?
    Last edited by LinkMTech; - 27th July 2013 at 22:52.
    Louie

  7. #7


    Did you find this post helpful? Yes | No

    Default Re: I2C CONFUSION, Help needed please

    Did the above, no luck.
    Doesn't like it straight, giving it $37/$36 direct sends it to Fail1 routine. So write statement fails.

    Funny thing is that when it goes to Fail1, though there should be no output of data, IT does output some of the data. This looks like half the data compared to when cycle runs normally.

    The code only run once and then I reset the PIC to run it again, so though it won't make any effect resetting the values in the main loop, I still tried with no luck. I am losing hairs on my head because of this now.
    Attached Images Attached Images  

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