RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Lệnh trong C

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • byte
    Thành viên tích cực
    • Oct 2007
    • 112

    #1

    Lệnh trong C

    Em đọc qua datasheet thấy có đoạn như thế này

    TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
    trong đó các tên TWINT, TWSTA, TWEN là tên các bit của thanh ghi TWCR.
    Bác cho em hỏi sau câu lệnh này thì TWCR nó có giá trị là bao nhiêu vậy? Em chẳng biết lần thế nào cho ra nữa. Thanks
    cụ thể các thanh ghi của nó là

    TWCR : TWINT - TWEA - TWSTA - TWSTO - TWWC - TWEN – bỏ qua - TWIE
    Phone: 0978536011
  • natra2k2
    Thành viên tích cực
    • Oct 2005
    • 481

    #2
    Nguyên văn bởi byte Xem bài viết
    Em đọc qua datasheet thấy có đoạn như thế này

    TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
    trong đó các tên TWINT, TWSTA, TWEN là tên các bit của thanh ghi TWCR.
    Bác cho em hỏi sau câu lệnh này thì TWCR nó có giá trị là bao nhiêu vậy? Em chẳng biết lần thế nào cho ra nữa. Thanks
    cụ thể các thanh ghi của nó là

    TWCR : TWINT - TWEA - TWSTA - TWSTO - TWWC - TWEN – bỏ qua - TWIE
    Bạn tìm file include xem nó định nghĩa mấy bit TWINT, TWSTA như thế nào, mình đoán là TWINT là một hằng số, giá trị bằng 7, tương tự TWSTA = 5, TWEN = 2.

    Lệnh trên có nghĩa là cấu hình cho thanh ghi TWCR với bit TWINT, TWSTA, TWEN bằng 1.
    1 << TWINT : tức là 1 dịch trái 7 bước, lấy kết quả đó OR với 1 dịch trái 5 bước, tiếp tục OR với 1 dịch trái 2 bước.
    1<<7 = 0b10000000
    1<<5 = 0b00100000
    1<<2 = 0b00000100
    -------------------
    TWCR= 0b10100100

    Comment

    • t3h
      Thành viên mới
      • Jul 2007
      • 27

      #3
      câu lệnh"<<" đó có nghĩa là dịch giá trị 0b00000001 (=1) sang trái với số lần là các vị trí của TWINT, TWSTA, TWEN ,
      khi đó ta có TWCR = (0b100000000)|(0b00100000)|(0b00000100)=0b10100100 ;
      chỉ có vậy thôi. các câu lệnh trong datasheet hầu hết được viết như vậy.

      Comment

      • byte
        Thành viên tích cực
        • Oct 2007
        • 112

        #4
        à, em hiểu rồi, thanks các bác nhiều lắm
        Phone: 0978536011

        Comment

        • huntermuop
          Thành viên mới
          • May 2010
          • 7

          #5
          lệnh !

          Chào các bạn cho mình hỏi lệnh này có nghĩa là gì: while(!a)

          Comment

          • chinh_cover
            Thành viên tích cực
            • Apr 2009
            • 167

            #6
            nếu a=1 thì !a=0,và ngược lại,

            Comment

            • manh89
              Thành viên tích cực
              • Oct 2009
              • 440

              #7
              Nguyên văn bởi huntermuop Xem bài viết
              Chào các bạn cho mình hỏi lệnh này có nghĩa là gì: while(!a)
              while(!a) : trong khi a không bằng 1(tức a=0) ,còn nếu while(a):trong khi a=1
              Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
              Liên hệ sđt: 0902.808.371

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...