Thông báo

Collapse
No announcement yet.

sử dụng timer 1 trong avr mega32

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

  • sử dụng timer 1 trong avr mega32

    mình làm bộ định thì 10ms với timer 1 cho mega32 ko biết sai chỗ nào mà mô phỏng không chạy, xem giúp chỉ điểm với

    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>

    int main(void){
    DDRB=0xFF; //PORTB la output PORT
    PORTB=0x00;

    TCCR1B=(1<CS10);// CS12=0, CS11=0, CS10=1: chon Prescaler =1
    // thanh ghi TCCR1B duoc dung thay vi TCCR0 cua Timer0
    TCNT1=55535; //gan gia tri khoi tao cho T/C1
    TIMSK=(1<<TOIE1);//cho phep ngat khi co tran o T/C1
    sei(); //set bit I cho phep ngat toan cuc

    while (1){ //vòng lặp vô tận
    //do nothing
    }
    return 0;
    }
    //trinh phuc vu ngat tran T/C1
    ISR (TIMER1_OVF_vect ){
    TCNT1=55535; //gan gia tri khoi tao cho T/C1
    PORTB ^=1; //doi trang thai Bit PB0
    }

  • #2
    10ms portB đảo bit 1 lần, vậy là quá nhanh mô phỏng làm sao thấy được, bạn tăng thời gian đảo bit lên vài giây 1 lần xem, mà bạn xài timer 16 bit đúng ko??
    Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
    Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

    Comment


    • #3
      Nguyên văn bởi hoahauvn2 Xem bài viết
      10ms portB đảo bit 1 lần, vậy là quá nhanh mô phỏng làm sao thấy được, bạn tăng thời gian đảo bit lên vài giây 1 lần xem, mà bạn xài timer 16 bit đúng ko??
      uhm, timer 1 16bit. mà mình ko nghĩ do thời gian nhỏ đâu, tại 1ms còn mô phỏng được muh
      file mô phỏng nè, ai dùng avr studio built thử rồi nạp xem có lỗi chỗ nào không
      mophong.rar

      Comment


      • #4
        10ms mà là quá nhanh sao,bó tay,mình không làm với avr bao giờ nên k biết nhưng bạn đọc kĩ lại datasheet xem cấu hình timer đúng chưa,PORTB là output chưa, enable ngắt toàn cục ,ngắt ngoại vi chưa

        Comment


        • #5
          Nguyên văn bởi thinking Xem bài viết
          10ms mà là quá nhanh sao,bó tay,mình không làm với avr bao giờ nên k biết nhưng bạn đọc kĩ lại datasheet xem cấu hình timer đúng chưa,PORTB là output chưa, enable ngắt toàn cục ,ngắt ngoại vi chưa
          mình đã đọc khá kĩ, đã kiểm tra các thanh ghi rồi, nếu dùng mega8 thì không sao mà qua mega32 lại không chạy. có lẽ phải bỏ qua cái này, nghiên cứu sau vậy

          Comment


          • #6
            Bài nầy trên hocavr.com viết rất cụ thể!
            TCCR1B=(1<CS10);// CS12=0, CS11=0, CS10=1: chon Prescaler =1

            bạn đánh thiếu chăng? TCCR1B=(1<<CS10); viết là < nó hiểu sai,thì sao mô phỏng đúng được.

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X