RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Timer1-atmega16

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • dodanh
    Thành viên chính thức
    • Nov 2007
    • 36

    #1

    Timer1-atmega16

    Các cao thủ cho e hỏi 1 chút về cái timer1 của atmega16
    Em dùng timer1 ở Mode: Fast PWM top=00FFh;OC1A output: Inverted
    Dùng biến trở để điều xung nhưng không hiểu tại sao khi biến trở ở min thì xung ra cho giá trị = 0 chứ không phải lên 1, biến trở ở max thì cũng cho ra xung = 0
  • dodanh
    Thành viên chính thức
    • Nov 2007
    • 36

    #2
    Em gửi kèm theo file mọi người xem rồi cho ý kiến nhé!
    Attached Files

    Comment

    • dodanh
      Thành viên chính thức
      • Nov 2007
      • 36

      #3
      Sao lại không có ai có ý kiến gì nhỉ?

      Comment

      • hungnp
        Thành viên tích cực
        • Nov 2005
        • 178

        #4
        Trong vòng while(1) ở hàm main() bạn thử sửa lệnh của bạn thành
        OCR1A = 256 - adc_data[0];

        Comment

        • dodanh
          Thành viên chính thức
          • Nov 2007
          • 36

          #5
          Nguyên văn bởi hungnp Xem bài viết
          Trong vòng while(1) ở hàm main() bạn thử sửa lệnh của bạn thành
          OCR1A = 256 - adc_data[0];
          không có được bạn ơi. Như thế này thì cũng có khác gì đâu thế này thì lại đảo lại giá trị so với khi dùng lệnh OCR1A = adc_data[0]; thôi
          mình đọc mãi cái timer1 rồi nhưng chẳng thấy chỗ nào nói về cái mình đang mắc phải cả

          Comment

          • hungnp
            Thành viên tích cực
            • Nov 2005
            • 178

            #6
            Bạn thử đi. Có khác đấy.
            Khi Điện áp vào ADC0=5V.
            thì adc_data[0]=0xFF=255.
            ===> OCR1A=1.
            ===> mức thấp của xung sẽ gần như không có nên có thể coi lối ra đang là mức 1.

            Comment

            • dodanh
              Thành viên chính thức
              • Nov 2007
              • 36

              #7
              Nguyên văn bởi hungnp Xem bài viết
              Bạn thử đi. Có khác đấy.
              Khi Điện áp vào ADC0=5V.
              thì adc_data[0]=0xFF=255.
              ===> OCR1A=1.
              ===> mức thấp của xung sẽ gần như không có nên có thể coi lối ra đang là mức 1.
              cái bạn nói thì đúng rồi nếu mình dùng lệnh OCR1A = adc_data[0]; thì khi điện áp vào là 5V thì sẽ cho ra xung toàn mức thấp còn khi đầu vào là 0V thì phải cho ra toàn xung mức cao lúc này đèn phải tắt. Nhưng bạn xem trong phần mô phỏng tại sao ở 0V nó lại nhảy xuống mức thấp luôn và đèn lại sáng tưng bừng trong khi đó mình dùng timer0,2 nó lại không như vậy chẳng hiểu tại sao.

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...