Thông báo

Collapse
No announcement yet.

????avr

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

  • #16
    xin hỏi chỗ này:

    lsl a
    lsl b
    lsl c
    lsl c
    lsl d
    lsl d
    lsl d

    sau khi đã .def các thanh ghi kế nhau đặt tên là a, b, c, d và mov nội dung từ một thanh ghi khác tamthoi vào chúng để chuẩn bị thao tác logic các thanh ghi này. nhưng nếu để yên thì nội dung ban đầu của chúng mới giữ nguyên để ra kết quả đúng, còn sau khi đã dịch trái chúng rồi mới làm vài phép logic sau đó ( một đoạn code khác tiếp theo) thì kết quả cuối cùng sẽ bị sai . vậy phần code này cần để làm gì?

    nhân tiện ai biết con IC tương đương với con này không : k633 - kln34pn - 40114D

    Comment


    • #17
      Nguyên văn bởi avr Xem bài viết
      xin hỏi chỗ này:

      lsl a
      lsl b
      lsl c
      lsl c
      lsl d
      lsl d
      lsl d

      sau khi đã .def các thanh ghi kế nhau đặt tên là a, b, c, d và mov nội dung từ một thanh ghi khác tamthoi vào chúng để chuẩn bị thao tác logic các thanh ghi này. nhưng nếu để yên thì nội dung ban đầu của chúng mới giữ nguyên để ra kết quả đúng, còn sau khi đã dịch trái chúng rồi mới làm vài phép logic sau đó ( một đoạn code khác tiếp theo) thì kết quả cuối cùng sẽ bị sai . vậy phần code này cần để làm gì?

      nhân tiện ai biết con IC tương đương với con này không : k633 - kln34pn - 40114D
      tất nhiên là khi dịch trái thì dữ liệu phải thay đổi rồi.
      ko biết ý tưởng của bạn khi dùng đoạn code này là gì...
      lệnh lsl a sẽ tương đương với lệnh a=a*2
      như vậy sau chuỗi lệnh trên tương đương:
      a=a*2;
      b=b*2;
      c=c*4;
      d=d*8;

      thân!

      Comment


      • #18
        Nguyên văn bởi avr Xem bài viết
        trong avr mỗi loaị có một cấu tạo về ngắt khác nhau. có loại 3 ngắt có loại 13 ngắt, khi lập trình cần jump qua các vùng nhớ nhày .
        và avr thấy khi code cần làm vài thao tác cùng lúc:
        - xem datasheet.
        -xem intruction set summary
        -xem register set summary
        -xem AVR - Ngô diên Tập

        trong 32 thanh ghi đa dụng được chia làm 2 phần 0>16 và 16>31. chỗ mốc 16 này có điểm gì đặc biệt ? ai có kinh nghiệm gì hơn thì chỉ nhe.
        câu này sao ko thấy ai trả lời.. ko biết tác giả có cần câu trả lời ko nhỉ?
        trong avr có 32 thanh ghi đa dụng. nếu bạn nghiên cứu kĩ các lệnh trong assembly thì sẽ thấy rõ sự khác biệt giữa chúng.
        hầu hết các lệnh đều có thể sử dụng các thanh ghi từ r16-r31.
        các thanh ghi r26-r31 sẽ tạo thành 3 thanh ghi 16 bit x,y,z sử dụng cho các chức năng như là con trỏ để trỏ đến ram,flash trong các lệnh ld,lds,st,sts,lpm..
        ngoài ra r0 còn sử dụng để chứa data cho lệnh mul,fmul..

        sơ sơ biết được nhiêu đó.. có j thì bạn nghiên cứu kĩ thêm các lênh thì sẽ rõ. hay nhờ các cao thủ chỉ giáo thêm.

        thân!

        Comment


        • #19
          cảm ơn.

          Comment


          • #20
            .INCLUDE'C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def' ;.DEVICE TUONG TU NHUNG CHI MO PHONG AVRSTUDIO, KO CHAY.

            .DEF TAMTHOI = R19
            .DEF DEMDIACHI = R20

            .ORG 0X0000
            RJMP RESET
            RESET:

            STACK:
            LDI TAMTHOI,LOW(RAMEND)
            OUT SPL,TAMTHOI
            LDI TAMTHOI,HIGH(RAMEND)
            OUT SPH,TAMTHOI

            SER TAMTHOI
            OUT DDRB,TAMTHOI

            DEM:
            LDI DEMDIACHI,10
            RCALL HIENTHI
            DEC DEMDIACHI
            CPI DEMDIACHI,0
            BREQ DEM
            RJMP HIENTHI

            HIENTHI:
            CLI
            SBIC EECR,EEWE
            RJMP HIENTHI
            OUT EEARL,DEMDIACHI(LOW)
            OUT EEARH,DEMDIACHI(HIGH)
            SBI EECR,EERE
            IN TAMTHOI,EEDR
            SEI
            OUT PORTB,TAMTHOI
            RCALL DELAY1S
            RET

            DELAY1S:
            LDI TAMTHOI,0X2F
            NGOAI:
            LDI R24,LOW(0000)
            LDI R25,HIGH(0000)
            TRONG:
            ADIW R24,1
            BRNE TRONG
            DEC TAMTHOI
            BRNE NGOAI
            RET

            .ESEG
            BANG:
            .DB 0B00000000
            .DB 0B00000001
            .DB 0B00000010
            .DB 0B00000011
            .DB 0B00000100
            .DB 0B00000101
            .DB 0B00000110
            .DB 0B00000111
            .DB 0B00001000
            .DB 0B00001001

            BIT EERIE

            cho lenh trigger cho eepromp truy xuất nội dung không thấy tác dụng gì khi chạy avrstudio, bit EERIE dùng để làm gì ? vì sao vậy?

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X