Thông báo

Collapse
No announcement yet.

Timer - Watchdog - Dao động...

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

  • #46
    Nguyên văn bởi jackychan Xem bài viết
    Trích:cho em hỏi, em đang làm thí nghiệm pic16f84a, làm led chớp tắt theo ý muốn nhưng em muốn dùng 1 biến trở để chỉnh tốc độ delay thì phải làm sao? nhờ các anh chỉ giáo!.
    Hình như con 16f84 không có ADC hay sao ấy.
    ko có ADC thì có thể dùng ngắt ngoài để điều khiển. mỗi lần ngắt sẽ tăng 1 khoảng delay theo yêu cầu. khi delay đến một mức max thì quay về mức min. hoặc có thể dùng 2 nút ngắt. 1 nút tăng, 1 nút giảm
    LMD 238 Tăng Bạc Hổ - TP. Quy Nhơn.

    Comment


    • #47
      Nguyên văn bởi fcvanbachc1 Xem bài viết
      em mới vào nghề,có bài sau muốn hỏi.em đang đọc về ngắt của con dspic,thử lập trình ngắt cho nháy đèn led từ 0-9 cho nó.chương trình của em gặp vấn đề thì phải,vì khi em thay đổi giá trị của PR1 thì thời gian nháy vẫn thế.nó vẫn nháy loạn lên.vậy mong các anh sửa giúp em với,và tư vấn cho em chút it về ngắt.sau đây là đoạn chương trình của em:
      #define __dsPIC33FJ12MC202__
      #include <p33fj12mc202.h>
      int led[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 7};
      int i;
      void _ISR _T1Interrupt(void)
      {
      _T1IF = 0;
      }
      main()
      {
      TMR1=0;
      PR1=0x2625A; //cho phep ngat sau 1 giay
      T1CON=0x8030; //chon ti le dem trc la 256
      _T1IF=0; //xoa co ngat TMR1
      _T1IE=1; //cho phep ngat
      TRISB=0xff00;
      while(1)
      {
      for (i=0;i<10;i++)
      {
      PORTB=led[i];
      }
      }
      }
      gửi bạn đoạn chương trình sau tham khảo nhé.
      #include <p33FJ12MC202.h>
      int led[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 8};
      int i = 0;
      //Cac prototype cho cac chuong trinh con
      void Init_PORTS(void);
      void Init_TMR1(void);

      //Chuong trinh chinh
      int main(void) {
      Init_PORTS(); //Khoi tao cac cong I/O
      Init_TMR1(); //Khoi tao Timer 1
      while (1) { //Vong lap chinh
      };
      }
      //Chuong trinh con khoi tao cac cong I/O, de noi voi LED
      void Init_PORTS(void) {
      PORTB = 0xffff;
      TRISB = 0x0000; //LED noi vao chan RB, la ngo ra
      }
      //Chuong trinh con khoi tao Timer 1, tran sau moi 1 giay o muc xung 40 Mips
      void Init_TMR1(void) {
      TMR1 = 0x0000; //Xoa so dem trong TMR1
      PR1 = 0x2625A; //Nguong tran la 1 giay tuong ung voi clock = 80 MHz
      _T1IF = 0; //Xoa co ngat cua Timer 1
      T1CON = 0x8030; //Dung fcy lam clock, prescale = 1:256
      _T1IE = 1; //Cho phep ngat Timer 1
      }
      //chuong trinh ngat
      void _ISR _T1Interrupt(void)
      {
      _T1IF = 0; //Xoa co ngat
      if (i>9)
      {i=0;}
      else
      {PORTB = led[i];
      i++;
      }
      }
      tôi đã test bằng protues thấy tạm ổn.nhưng theo tính toàn của tôi là trễ 1 giây nhưng lúc mô phỏng thì lên đến 2s thì phải.mong các cao thủ chỉ giáo thêm

      Comment


      • #48
        watchdog mình cũng ko rành lắm.
        giờ cho hỏi mình muốn reset thì có thể dùng ngắt được ko?
        ko cần phải chờ tràn bộ nhớ gì cả.
        VD : mình cài đặt ngắt TiMER ,khi ngắt xảy ra thì vào ngắt reset lại toàn bộ được ko?
        nếu dc hay ko gì thì cũng cho hỏi khi reset wachdog cần set những bít nào. cách tính toán thời gian tràn ra sao? cho xin tài liệu tham khảo càng tốt
        thanks!

        Comment


        • #49
          ủa, em chưa thử nhưng vì WDT là một timer nên có thể sử dụng nó như một timer được không>
          Be quan. Plz contact through email:

          Comment


          • #50
            Nguyên văn bởi Lenh Ho Xem bài viết
            ủa, em chưa thử nhưng vì WDT là một timer nên có thể sử dụng nó như một timer được không>
            Sử dụng được. Nhưng nó :
            - Nó không ổn định di bộ dao động RC bị phụ thuộc môi trường => không thể làm bộ đếm+ hẹn giờ do ko chính xác.
            - Nếu chương trình chạy ổn định thì timer không bao giờ tràn => không dùng được ngắt.
            Vậy bạn muốn ứng dụng nó vào việc gì đây ?

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X