Tạo 10 tín hiệu sóng vuông bằng timer của Atmega16/32 với chu kỳ khác nhau.

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • mrzero064
    Thành viên mới
    • Dec 2010
    • 17

    #1

    Tạo 10 tín hiệu sóng vuông bằng timer của Atmega16/32 với chu kỳ khác nhau.

    Hiện mình đang làm bài tập môn học,đề bài như sau:Atmega 16/32 có 3 timer,mở rộng sử dụng 1 timer để tạo các sóng vuông có chu kỳ khác nhau.Các anh,các bạn giúp dùm.
  • cogaihalan
    Thành viên chính thức
    • Mar 2012
    • 92

    #2
    Chào bạn cái này hồi trước mình có hỏi thầy rồi lên mình biết với đoạn code này 10 thời điểm hay 100 thời điểm vẩy được
    #define led PORTD;
    {
    TCNT0=178;
    unsigned char a,sl;
    if((a==0)&&(++sl>39))sl=0,a=1,led=0;
    elseif((a==1)&&(++sl>99)sl=0,a=2,led=1;
    elseif((a==2)&&(++sl>19)sl=0,a=3,led=0;
    elseif((a==3)&&(++sl>59)sl=0,a=4,led=1;
    }
    cứ thế tới bao nhiêu bạn tuỳ thích
    nhớ phải cho câu lệnh này vào trong ngắt nha
    k hiểu chỗ nào pm mình giải thích cho ^^

    Comment

    • fee_08
      Thành viên tích cực
      • Mar 2011
      • 201

      #3
      Nguyên văn bởi cogaihalan Xem bài viết
      Chào bạn cái này hồi trước mình có hỏi thầy rồi lên mình biết với đoạn code này 10 thời điểm hay 100 thời điểm vẩy được
      #define led PORTD;
      {
      TCNT0=178;
      unsigned char a,sl;
      if((a==0)&&(++sl>39))sl=0,a=1,led=0;
      elseif((a==1)&&(++sl>99)sl=0,a=2,led=1;
      elseif((a==2)&&(++sl>19)sl=0,a=3,led=0;
      elseif((a==3)&&(++sl>59)sl=0,a=4,led=1;
      }
      cứ thế tới bao nhiêu bạn tuỳ thích
      nhớ phải cho câu lệnh này vào trong ngắt nha
      k hiểu chỗ nào pm mình giải thích cho ^^
      Đoạn code này của bạn có thể phát 10 xung khác nhau cùng một lúc k ?? hay mỗi lần phát dc 1 xung ?

      Comment

      • cogaihalan
        Thành viên chính thức
        • Mar 2012
        • 92

        #4
        Tất nhiên là được rồi thì bạn phải viết thử đoạn code này đi rồi cho hiển thị ra LED là biết
        thanh ghi TCNT0=178 là 5ms tràn
        còn các số 39 99 19 59 là các số do bạn tính timer LED on hay off bao nhiêu ms thui!

        Comment

        • mrzero064
          Thành viên mới
          • Dec 2010
          • 17

          #5
          mình cảm ơn bạn cogaihlan nhiều^^

          Comment

          • mrzero064
            Thành viên mới
            • Dec 2010
            • 17

            #6
            Code đó mình làm thử rồi bạn.không hoạt động.Bạn có thể hướng dẫn chi tiết hơn không?

            Comment

            • tranhieu_ece
              Thành viên tích cực
              • Oct 2009
              • 272

              #7
              Bạn tham khảo tại đây nhé! Cái này viết cho PIC nhưng giải thuật hoàn toàn áp dụng đc cho Atmega
              [Thảo luận]PWM với GPIO

              Comment

              • mrzero064
                Thành viên mới
                • Dec 2010
                • 17

                #8
                Cảm ơn bạn nha ^^

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...