Thông báo

Collapse
No announcement yet.

thắc mắc về timer1 của PIC18F4620 với PIC16F877A ?

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

  • thắc mắc về timer1 của PIC18F4620 với PIC16F877A ?

    Em tính như thế này: T(tràn)= (4*(65536-3035)*8)/ 20000000= 100ms. Tràn 10 lần thì được 1s! Vậy mà sao con 16F877 chạy đúng 1s mà con 18F4620 thì chạy nhanh hơn nhiều lần lắm: khoảng 1/30s àh ! rõ ràng timer1 của 18F4620 cũng 16 bit mà ?? Vậy là sao hả các đại ca?

  • #2
    giúp với mấy huynh ơi ! không ai ra nghĩa hiệp hết zị !

    Comment


    • #3
      Xem lại cấu hình OSC của PIC18F xem bạn, có thể bạn cấu hình nó không còn là 20MHz thì bạn dùng công thức trên là không đúng nữa. Copy đoạn code cấu hình OSC lên anh em xem thử cho nhé

      Comment


      • #4
        Nguyên văn bởi achut Xem bài viết
        #include <18f4620.h>
        #FUSES NOWDT, HS, NOPUT,NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD//, NOWRT
        #use delay(clock=20000000)

        int led7doan[10]={0b11000000,0b11111001,0b10100100,0b10110000,0b10 011001,0b10010010,
        0b10000010,0b11111000,0b10000000,0b10010000};
        int32 i=1,a=0;
        #int_timer1
        void tao_tre_1s()
        {
        a=a+1;
        set_timer1(3035);
        if(a=10)
        {
        output_d(led7doan[i]);
        i=i+1;
        a=0;
        if(i>=10)
        {
        i=0;
        }
        }
        }

        void main()
        {
        setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
        set_timer1(3035);
        enable_interrupts(global);
        enable_interrupts(int_timer1);
        output_d(led7doan[0]);
        while(true)
        {;}
        }
        đoạn code nè huynh !

        Comment


        • #5
          Nguyên văn bởi mryalamen Xem bài viết
          đoạn code nè huynh !
          Hi,
          Bác thêm vào cuối chương trình ngắt timer1 dòng: clear_interrupt(INT_TIMER1); xem sao. Trong các chương trình ngắt tui viết thì đều có dòng đó ở cuối.
          Thân ái.
          Đường đến những ngày vinh quang không còn xa
          Con đường chúng ta... chúng ta đã chọn.

          Comment


          • #6
            Đệ xem câu lệnh so sánh này nè :
            if(a=10) thay bằng if(a==10)

            Thay lại thử xem đã

            Comment


            • #7
              Nguyên văn bởi achut Xem bài viết
              Đệ xem câu lệnh so sánh này nè :
              if(a=10) thay bằng if(a==10)

              Thay lại thử xem đã
              thank huynh nhiều ! chạy chậm lại rồi ! tại sơ xuất quên kiểm tra cấu trúc lệnh ! mà sao CCS hiểu a=10 bằng cách nào mà nó sinh mã sai chạy như vũ bão thế ?

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X