toilet

Lỗi Timer/counter 1

Thảo luận trong 'Họ AVR'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

Moderators: mta_cdt
  1. Đăng 31/1/13 #1

    Trung Thanh Học sinh phổ thông

    Số bài viết: 19
    Đã được thích: 5
    Chào mọi người ! Mình dùng timer/counter 1 để thử thực hiện bài toán đếm người đi vào 1 căn phòng ! theo lí thuyết TCNT1 tăng từ 0 đến 1 giá trị của OCRA1A thì sẽ thực hiện một (compare match-ngắt so sánh) xảy ra Sau khi set bit và cài đặt cho các thanh ghi và tham khảo hàm ngắt của codevioson 1 cách đầy đủ thì mình mô phỏng lại bằng protues ! Nhưng khi nhấn công tắc 5 lần (nói với chân T1 - lấy xung ngoài ngắt sườn âm) thì led 7 thanh vẫn chưa nhảy lên 1 ! Hy vọng được các sư huynh chỉ giáo ! New Bitmap Image.

    đây là code của mình !
    Mã:
    #include <mega8.h>
     
    #include <delay.h>
     
    unsigned char val=0;
     
    interrupt [TIM1_COMPA] void timer1_compa_isr(void)
     
    { val++;
     
    if(val==10)val=0;//gioi han bien val tu 0 den 9
     
    TCNT1=0;
     
    PORTB=val; //xuat gia tri ra PORTB
     
    }
     
    void main (void)
     
    {
     
    DDRB=0xff;//PORTB la output portb
     
    PORTB=0x00;
     
    TCNT1=0;
     
    TCCR1B=(1<<WGM12)|(1<<CS12)|(1<<CS11);
     
    //xung nhip tu chan T1 canh xuong
     
    OCR1A=4; //gan gia tri can so sanh
     
    TIMSK=(1<OCIE1A);//cho phep ngat khi dem gia tri =4
     
    #asm ("sei") //set bit nay de ngat toan cuc
     
    while(1)
     
    {
     
    //do nothing
     
    }
     
    }
    Chủ đề cùng chuyên mục
    Chia sẻ Share





    #1
  2. Đăng 31/1/13 #2

    chúng Kỹ sư

    Số bài viết: 338
    Đã được thích: 336
    sai ở :
    TIMSK=(1<OCIE1A);
    Trung Thanh thích bài này.
    #2
  3. Đăng 31/1/13 #3

    NgoHungCuong Trở lại với forum :-)

    Số bài viết: 2,726
    Đã được thích: 7,333
    Yahoo Messenger
    Skype
    Facebook Profile
    Minh đang nghĩ là sao không dùng ngắt ngoài trong trường hợp này nhỉ?
    Trung Thanh thích bài này.
    #3
  4. Đăng 1/2/13 #4

    Trung Thanh Học sinh phổ thông

    Số bài viết: 19
    Đã được thích: 5
    Thanks anh ! em sửa lại và đã chạy ngon !
    #4
  5. Đăng 1/2/13 #5

    Trung Thanh Học sinh phổ thông

    Số bài viết: 19
    Đã được thích: 5
    Em đang đọc đến phần T/C1 thì có giới thiệu bài viết đếm sự kiện với T/C1(giả sử lắp với cảm biến cứ 5 người đi qua sẽ báo1 lần ) nên em lắp thay cảm biến bằng nút button ! ^^ ! Chủ yếu em muốn tìm hiểu kĩ về ngắt với Timer/counter ! Thanks anh
    #5
Moderators: mta_cdt

Chia sẻ trang này