Thông báo

Collapse
No announcement yet.

Lệnh trong C

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

  • 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

  • #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


    • #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


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

        Comment


        • #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


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

            Comment


            • #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...
              X