Thông báo

Collapse
No announcement yet.

AVR dành cho các cao thủ

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

  • #16
    Tôi hổng bít gì mấy chú này đâu , nhức đầu lắm .

    Có xem qua cái code của cậu rồi .

    Nếu mà khai báo biến pwm1 ,pmw2 ...

    Khi muốn nạp giá trị cho biến thì ( biến = giá trị )

    --- Hình như trong mã nguồn cậu lại làm điều ngược lại .

    --- Ban đầu :

    pwm1 =pmw2 = 0 .

    Sau đó :
    Giá trị thanh ghi ( OCRBxxx ) = pwm1

    rồi :

    Nếu pwm1 lớn hơn bằng ....


    ---- thế thì lúc nào thanh ghi cũng 0 hết .


    --------------------------------------------------------
    Có thể làm đơn giản như sau :

    - Đẩy tín hiệu ( 8 bit từ cổng com vào AVR )
    ( bây giờ 8 bit đã được đưa vào thanh ghi ).

    Pwm1 = thanh ghi 1 .

    Pwm2 = thanh ghi 2


    --- kiểm tra (pwm1 , pwm2 ) ---- if ( pwm1 >= xxx) thì làm những việc sau đó .




    Có thể PWM luôn cái data thu về .
    ( máy tính có nhiệm vụ gửi ( 0 đến 255 ) khi ấn nút )

    AVR thu được 8 bit này (dulieu) và tiến hành PWM ra 1 chân : ( VD : chan15 )

    for (i=8;i>0;i--){
    if ((dulieu & 0x80)==0x80)
    {chan15=1;
    Trễ_1 ;
    chan15 =0;
    Trễ_1 ;
    }

    else {
    chan15=1;
    Trễ_2;
    chan15=0;
    Trễ_2;
    }
    dulieu<<=1;}


    /////// Cũng có thể gộp vào và sử dụng PWM cứng trên AVR ( nếu AVR có hỗ trợ)

    /////// Cho tất cả chúng vào vòng lặp tuần hoàn.
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #17
      chân thành cảm ơn bác QD đã "hạ sơn" giúp em.
      lần sau tại hạ sẽ cẩn thận hơn.
      many thanks ...

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X