Thông báo

Collapse
No announcement yet.

Thêm bộ đếm vòng tua máy - cùng sáng tạo

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

  • #31
    Hello anh em,

    Em vừa hoàn thành xong cái này.
    Lấy timer 500ms làm mẫu, đếm số ngắt ngoài.
    Em tính theo công thức:
    g_rpm=g_num_ext*12*2;
    /* 12 la: 120/10. 2 so xung trong 1 vong quay */

    Cái 120/10 kia là thực nghiệm em chia cho 10, cũng chả biết tại sao nữa, đo với đồng hồ của thợ xe thì chính xác. Timer cũng chính xác vì em cho thử nháy led trong ngắt timer1 thì đúng 500ms luôn
    Cấu hình timer, interrupt của em:

    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Falling Edge
    // INT1: Off
    GICR|=(0<<INT1) | (1<<INT0);
    MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (0<<ISC00);
    GIFR=(0<<INTF1) | (1<<INTF0);


    /* Timer1 Init */
    /* 8mhz => 1/8000000=0,000000125 sec 1 chu ky may */
    TCCR1B=(1<<CS12)|(0<<CS11)|(0<<CS10); /* prediv = 256, sau: 0,000125*256=0,032 milisec thi timer1 tang len 1 don vi */
    /* Muon dem 500 milisec can: 500/0.032 = 15625 lan dem cua timer1 */
    TCNT1=49911; /* 65536-15625 */
    TIMSK|=(1<<TOIE1); /* enable interrupt timer1 */

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X