I2C with External Eeprom


Results 1 to 16 of 16

Threaded View

  1. #10
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Code:
    DEFINE OSC 8
    INCLUDE "modedefs.bas" 
    @ DEVICE INTRC_OSC
    @ DEVICE MCLR_OFF
    @ DEVICE PROTECT_OFF
    @ DEVICE CPD_OFF
    @ DEVICE LVP_OFF
    @ DEVICE BOD_OFF
    @ DEVICE PWRT_OFF
    @ DEVICE WDT_OFF
    DEFINE DEBUG_REG PORTB  
    DEFINE DEBUG_BIT 7
    DEFINE DEBUG_BAUD 9600
    DEFINE DEBUG_MODE 1
    osccon=$7e:cmcon=7:adcon1=$80:ansel=1:adcon0=$c1:porta=0:portb=0:trisa=1
    trisb=7:sda var portb.0:scl var portb.1:addr var word:dat var byte
    dat2 var byte:ctw con $a0
    start:     dat=dat+1:addr=addr+1
    i2cwrite sda,scl,ctw,addr.highbyte,addr.lowbyte,[dat]:pause 10
    debug "Wrote: ",dec addr," with ",dec dat,13,10
    i2cread sda,scl,ctw,addr.highbyte,addr.lowbyte,[dat2]
    debug " Read: ",dec addr," val: ",dec dat2 , 13 , 10
    if dat = dat2 then
    debug "Write/Read Successful at ",dec5 addr," with ",dec3 dat,13,10
    else
    debug "Write/Read Error at ",dec5 addr,"-Wrote:",dec3 dat," - Read:",dec dat2,13,10
    endif
    pause 500:goto start
    END
    OR un-COLONized...

    Code:
    DEFINE OSC 8
    INCLUDE "modedefs.bas" 
    @ DEVICE INTRC_OSC
    @ DEVICE MCLR_OFF
    @ DEVICE PROTECT_OFF
    @ DEVICE CPD_OFF
    @ DEVICE LVP_OFF
    @ DEVICE BOD_OFF
    @ DEVICE PWRT_OFF
    @ DEVICE WDT_OFF
    DEFINE DEBUG_REG PORTB  
    DEFINE DEBUG_BIT 7
    DEFINE DEBUG_BAUD 9600
    DEFINE DEBUG_MODE 1
    osccon = $7e
    cmcon = 7
    adcon1 = $80
    ansel = 1
    adcon0 = $c1
    porta = 0
    portb = 0
    trisa = 1
    trisb = 7
    sda var portb.0
    scl var portb.1
    addr var word
    dat var byte
    dat2 var byte
    ctw con $a0
    
    start:
    dat = dat + 1
    addr = addr + 1
    i2cwrite sda , scl , ctw , addr.highbyte , addr.lowbyte , [ dat ]
    pause 10
    debug "Wrote: " , dec5 addr , " with " , dec3 dat , 13 , 10
    i2cread sda , scl , ctw , addr.highbyte , addr.lowbyte , [ dat2 ]
    debug " Read: " , dec5 addr , " val: " , dec3 dat2 , 13 , 10
    if dat = dat2 then
    debug "Write/Read Successful at " , dec5 addr , " with " , dec3 dat , 13 , 10
    else
    debug "Write/Read Error at " , dec5 addr , "-Wrote:" , dec3 dat , " - Read:" , dec dat2 , 13 , 10
    endif
    pause 500
    goto start
    END
    Last edited by skimask; - 20th February 2008 at 23:42.

Similar Threads

  1. I2C Master/Slave 16F88/16F767 working code
    By DanPBP in forum Code Examples
    Replies: 2
    Last Post: - 23rd October 2012, 22:31
  2. Can't read sequential addresses in external EEPROM
    By tjkelly in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 18th February 2010, 14:46
  3. Replies: 1
    Last Post: - 28th January 2010, 22:15
  4. Problem with I2C EEPROM addressing
    By Atom058 in forum General
    Replies: 14
    Last Post: - 3rd November 2009, 03:17
  5. HARDWARE I2C SAMPLE CODE question
    By Michael Wakileh in forum Code Examples
    Replies: 2
    Last Post: - 16th June 2009, 21:07

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