Thông báo

Collapse
No announcement yet.

watchdog cho 89s52 có thực sự hiệu quả?

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

  • watchdog cho 89s52 có thực sự hiệu quả?

    chào các bạn, mình mới chuyển sang dùng thử con 89s52 vì nó có watchdog đây là đoạn code để thử:
    $mod52
    org 0h
    mov r0,#06ah
    mov @r0,#1eh
    mov @r0,#e1h
    mov p1,#0fh
    call dellay
    mov p1,#0
    main: ljmp main
    dellay:
    mov r0,#4
    del0:
    mov r1,#0ffh
    del1:
    mov r2,#0ffh
    del2:
    djnz r2,del2
    djnz r1,del1
    djnz r0,del0
    ret
    end

    chương trình của mình ko xóa watchdog để xem nó reset thế nào nhưng mình thấy port1 luôn ở mức thấp chứng tỏ watchdog chưa có tác dụng, các bạn cho ý kiến giúp mình với nhé. có lẽ mình fair dùng watchdog ngoài?

  • #2
    WDT của 89S chạy mà bạn, mình đã thử rồi, nhưng mình viết bên C, câu lệnh khai báo như sau:

    WDTPRG|=0x07;
    WDTRST=0x1E;
    WDTRST=0xE1;

    Sau đó bạn này cứ chèn câu lệnh
    WDTRST=0x1E;
    WDTRST=0xE1;
    vào những chỗ thích hợp

    có thể bên ASM bạn này khai báo có trục trặc gì đó, nên WDT chưa chạy
    - Mạch nạp vdk 8051, AVR, PIC, EEPROM
    - Linh kiện điện tử cho sinh viên


    Comment


    • #3
      Với keil C thì hình như chưa khai báo địa chỉ thanh ghi WDT cho nên muốn dùng cần khai báo thêm.


      Add: 97 Quán Nam - Lê Chân - Hải Phòng.
      Tel: 031 518648 Phone: 0904 283 505

      Comment


      • #4
        làm sao bạn nhìn thấy được trừ khi mắt bạn là mắt thần. Nó chỉ xảy ra trong một thời gian tính bằng us thì làm sao nhìn thấy được. Bạn thử tesst cách khác xem sao. Lướt qua đatasheet thấy địa chỉ của thanh ghi la 06ah. Nó là 1 counter 13 bit thui nên thời gian tràn của nó là 8191 chu kỳ máy.

        Nguyên văn bởi nguyen24 Xem bài viết
        WDT của 89S chạy mà bạn, mình đã thử rồi, nhưng mình viết bên C, câu lệnh khai báo như sau:

        WDTPRG|=0x07;
        WDTRST=0x1E;
        WDTRST=0xE1;

        Sau đó bạn này cứ chèn câu lệnh
        WDTRST=0x1E;
        WDTRST=0xE1;
        vào những chỗ thích hợp

        có thể bên ASM bạn này khai báo có trục trặc gì đó, nên WDT chưa chạy
        Mình chưa sài bao h nhưng xem qua đatasheet đâu thấy nói tơi dòng ghi
        WDTPRG|=0x07; cái này dùng để làm gì vậy bạn
        Last edited by chanhlun10; 04-07-2011, 19:09.

        Comment


        • #5
          Nguyên văn bởi hoangdai Xem bài viết
          Với keil C thì hình như chưa khai báo địa chỉ thanh ghi WDT cho nên muốn dùng cần khai báo thêm.
          Địa chỉ 2 thanh ghi đó là:

          sfr WDTRST = 0xA6;
          sfr WDTPRG = 0xA7;

          bạn này chèn thêm vào trong file AT89X52.H
          - Mạch nạp vdk 8051, AVR, PIC, EEPROM
          - Linh kiện điện tử cho sinh viên


          Comment


          • #6
            Nguyên văn bởi chanhlun10 Xem bài viết
            làm sao bạn nhìn thấy được trừ khi mắt bạn là mắt thần. Nó chỉ xảy ra trong một thời gian tính bằng us thì làm sao nhìn thấy được. Bạn thử tesst cách khác xem sao. Lướt qua đatasheet thấy địa chỉ của thanh ghi la 06ah. Nó là 1 counter 13 bit thui nên thời gian tràn của nó là 8191 chu kỳ máy.


            Mình chưa sài bao h nhưng xem qua đatasheet đâu thấy nói tơi dòng ghi
            WDTPRG|=0x07; cái này dùng để làm gì vậy bạn
            Ngày trước mình đọc trong 1 AppNote của Atmel, phải khai báo như vậy, trong Datasheet thì ko nói tới điều này, còn khoảng thời gian 16383 thì trong Datasheet mục wdt có ghi.
            - Mạch nạp vdk 8051, AVR, PIC, EEPROM
            - Linh kiện điện tử cho sinh viên


            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X