اطلاعیه

Collapse
No announcement yet.

مشکل در ارتباط i2c

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در ارتباط i2c

    سلام دوستان
    من دو میکرو رو با ارتباط i2c هم وصل کردم نوشتم هر یک ثانیه به موتغیر یک واحد اضافه کنه بعد از طریق i2c ارسال کنه که همش می نویسه 255 چکار کنم
    برنامه فرستنده
    $regfile = "m16def.dat"
    $crystal = 1000000
    Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = _
    Pinb.7 , Rs = Pinb.2 , E = Pinb.3
    Config I2cdelay = 5
    Config Sda = Portc.1
    Config Scl = Portc.0
    Dim A As Byte
    I2cstart
    Do
    Incr A
    Lcd A
    I2csend &H40 , A
    Wait 1
    Cls
    loop
    End

    برنامه گیرنده

    $regfile = "m8def.dat"
    $crystal = 1000000
    Config Lcdpin = Pin , Db4 = Pind.3 , Db5 = Pind.2 , Db6 = Pind.1 , Db7 = _
    Pind.0 , Rs = Pind.5 , E = Pind.4
    Config I2cdelay = 5
    Config Sda = Portb.1
    Config Scl = Portb.0
    Dim A As Byte
    I2cstart
    Do
    Cls
    I2creceive &H40 , A
    Lcd A
    Wait 1
    Loop
    End

    فایل پروتوس
    http://www.pic.iran-forum.ir/images/z1yhf99o4g6ympvyqw.zip

    #2
    پاسخ : مشکل در ارتباط i2c

    سلام
    بعذ ازارسال تاخیر نذار و فوری استپ کن یعنی:

    I2cstart

    I2csend &H7F , Led
    I2cwbyte Led1
    I2cwbyte Led2
    I2cwbyte Led3
    I2cstop
    waitms 50
    اینو امتحان کن
    فرستنده:
    $regfile = "M16DEF.DAT"
    $crystal = 8000000
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 16 * 2
    Config Sda = Portc.1
    Config Scl = Portc.0
    Dim Led As Byte
    Led = 0
    Dim Led1 As Byte
    Led1 = 1
    Dim Led2 As Byte
    Led2 = 2
    Dim Led3 As Byte
    Led3 = 3
    Dim Adre As Word
    Adre = 255
    I2cinit
    Cursor Off
    Do
    I2cstart
    I2csend &H7F , Led
    I2cwbyte Led1
    I2cwbyte Led2
    I2cwbyte Led3
    I2cstop
    Locate 1 , 1
    Lcd Led , " "
    Locate 1 , 8
    Lcd Led1 , " "
    Locate 2 , 1
    Lcd Led2 , " "
    Locate 2 , 8
    Lcd Led3 , " "
    Incr Led
    Incr Led1
    Incr Led2
    Incr Led3
    Wait 1
    Loop
    گیرنده:
    $regfile = "M8DEF.DAT"
    $crystal = 8000000
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 16 * 2
    Config Sda = Portc.1
    Config Scl = Portc.0
    Dim Led As Word
    Dim Led1 As Word
    Dim Led2 As Word
    Dim Led3 As Word
    Cursor Off
    I2cinit
    Dim Adre As Word
    Adre = 255
    Do
    Bitwait Pinc.0 , Reset
    I2cstart
    I2creceive &H7F , Led
    I2crbyte Led1 , Ack
    I2crbyte Led2 , Ack
    I2crbyte Led3 , Nack
    I2cstop
    Locate 1 , 1
    Lcd Led , " "
    Locate 1 , 8
    Lcd Led1 , " "
    Locate 2 , 1
    Lcd Led2 , " "
    Locate 2 , 8
    Lcd Led3 , " "

    Loop

    موفق باشی

    دیدگاه


      #3
      پاسخ : مشکل در ارتباط i2c

      سلام
      توی پروژه های تکمیل شده یه پروژه با زبان بیسیک برای I2C و هم SPI موجوده
      میتونه براتون مفید باشه

      دیدگاه

      لطفا صبر کنید...
      X