Thông báo

Collapse
No announcement yet.

Xem giúp em đoạn code này?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Xem giúp em đoạn code này?

    Em viết trong ccs C như sau để thử cái i2c nhưng nó chả chịu chạy
    không truyền dữ liệu cho slave
    #use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3)
    void main()
    {

    i2c_start();
    i2c_write(0xa0);
    i2c_write(0x01);
    i2c_write(0xff);
    i2c_stop();

    }

  • #2
    Bạn đã có 2 điện trở treo từ 2 chân SCL và SDA của I2C lên VDD chưa ?
    Mình test thấy I2C đã chạy.

    Comment


    • #3
      em dùng pic16f877a và ds1307 để làm đồng hồ nhưng có thắc mắc như thế này nếu em dùng lệnh( trong ccs c)
      i2c_start();

      i2c_write(0xd1);

      i2c_stop();
      thì ds1307 có xuất tất cả các dữ liệu của nó ra không ạ ?
      em giả lập bằng protues thì nó chạy thế này đây

      trong đó đường màu hồng là đường SCL
      còn đường màu xanh là đường SDA
      như trong hình thì sau khi start thì pic gởi mã của ds1307+ bit 1
      nhưng ds1307 chả gởi về lại cái gì cả ngoài làm chân sda xuống mức thấp ở bít thứ 9 .Các pác xem thử nếu viết lệnh như trên thì ds1307 phải gởi dữ liệu của nó chứ? Mong các pác giúp đỡ

      Comment


      • #4
        Mình gửi cho bạn file DS1307.c bao gồm các lệnh thao tác với DS1307 bên trong.
        Ví dụ như để viết vào thanh ghi 0x01 của DS1307 giá trị 30 bạn chỉ cần dùng lệnh :
        write_ds1307(0x01,30);
        Hay đọc giá trị từ thanh ghi 0x01 của ds1307 chỉ cần lệnh :
        read_ds1307(0x01);

        Bạn có thể mở file ds1307.c ra để xem thao tác cụ thể với I2C.
        Attached Files

        Comment

        Về tác giả

        Collapse

        dophutuyen Tìm hiểu thêm về dophutuyen

        Bài viết mới nhất

        Collapse

        Đang tải...
        X