Thông báo

Collapse
No announcement yet.

tạo xung pwm

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

  • tạo xung pwm

    em đang gặp khó khăn trong tạo pwm trong codevision.pro nào giúp em chút.em tạo trên atmega16 timer 1 .mà 255 thì nó lại ko chạy đc động cơ,125 lại là max ,còn 1 thì cũng ko chạy luôn.bác nào giúp em,có hình ảnh thì cảm ơn nhiều ak

  • #2
    bạn vào đây đọc nhé Bài 4 - Timer - Counter
    tom and jery !!!!!!!

    Comment


    • #3
      em cảm ơn.
      nhưng trên này viết bằng asm và lt bằng avrstudio.mà em mới học lại chọn codevision.mong bác nào giúp ak

      Comment


      • #4
        bạn đọc để hiểu bản chất. Khởi tạo trong avr thì đơn giản thui. Bạn dùng chế độ 14 fastpwm top=icr1.


        code như sau
        /************************************************** ***
        This program was produced by the
        CodeWizardAVR V2.03.4 Standard
        Automatic Program Generator
        © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
        HP InfoTech, Development Tools for Microcontrollers, C Compilers, In-System Programmers

        Project :
        Version :
        Date : 9/11/2011
        Author :
        Company :
        Comments:


        Chip type : ATmega16
        Program type : Application
        Clock frequency : 1.000000 MHz
        Memory model : Small
        External RAM size : 0
        Data Stack size : 256
        ************************************************** ***/

        #include <mega16.h>

        // Declare your global variables here

        void main(void)
        {
        // Declare your local variables here

        // Input/Output Ports initialization
        // Port A initialization
        // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
        PORTA=0x00;
        DDRA=0x00;

        // Port B initialization
        // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
        PORTB=0x00;
        DDRB=0x00;

        // Port C initialization
        // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
        PORTC=0x00;
        DDRC=0x00;

        // Port D initialization
        // Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
        // State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
        PORTD=0x00;
        DDRD=0x30;

        // Timer/Counter 0 initialization
        // Clock source: System Clock
        // Clock value: Timer 0 Stopped
        // Mode: Normal top=FFh
        // OC0 output: Disconnected
        TCCR0=0x00;
        TCNT0=0x00;
        OCR0=0x00;

        // Timer/Counter 1 initialization
        // Clock source: System Clock
        // Clock value: 125.000 kHz
        // Mode: Fast PWM top=ICR1
        // OC1A output: Non-Inv.
        // OC1B output: Non-Inv.
        // Noise Canceler: Off
        // Input Capture on Falling Edge
        // Timer 1 Overflow Interrupt: Off
        // Input Capture Interrupt: Off
        // Compare A Match Interrupt: Off
        // Compare B Match Interrupt: Off
        TCCR1A=0xA2;
        TCCR1B=0x1A;
        TCNT1H=0x07;
        TCNT1L=0xD0;
        ICR1H=0x00;
        ICR1L=0x00;
        OCR1AH=0x00;
        OCR1AL=0x00;
        OCR1BH=0x00;
        OCR1BL=0x00;

        // Timer/Counter 2 initialization
        // Clock source: System Clock
        // Clock value: Timer 2 Stopped
        // Mode: Normal top=FFh
        // OC2 output: Disconnected
        ASSR=0x00;
        TCCR2=0x00;
        TCNT2=0x00;
        OCR2=0x00;

        // External Interrupt(s) initialization
        // INT0: Off
        // INT1: Off
        // INT2: Off
        MCUCR=0x00;
        MCUCSR=0x00;

        // Timer(s)/Counter(s) Interrupt(s) initialization
        TIMSK=0x00;

        // Analog Comparator initialization
        // Analog Comparator: Off
        // Analog Comparator Input Capture by Timer/Counter 1: Off
        ACSR=0x80;
        SFIOR=0x00;

        while (1)
        { OCR1A=1000;
        OCR1B=1500;
        // Place your code here

        };
        }
        Click image for larger version

Name:	Untitled.jpg
Views:	1
Size:	86.0 KB
ID:	1350826

        Comment


        • #5
          Khởi tạo pwm cứng:
          // Timer/Counter 1 initialization
          // Clock source: System Clock
          // Clock value: 500.000 kHz
          // Mode: Fast PWM top=00FFh
          // OC1A output: Non-Inv.
          // OC1B output: Non-Inv.
          // Noise Canceler: Off
          // Input Capture on Falling Edge
          // Timer 1 Overflow Interrupt: Off
          // Input Capture Interrupt: Off
          // Compare A Match Interrupt: Off
          // Compare B Match Interrupt: Off
          TCCR1A=0xA1;
          TCCR1B=0x0A;
          TCNT1H=0x00;
          TCNT1L=0x00;
          ICR1H=0x00;
          ICR1L=0x00;
          OCR1AH=0x00; // OCR1AL thay doi xung PWM o chan PORTD.5
          OCR1AL=0x00;
          OCR1BH=0x00; // OCR1BL thay doi xung PWM o chan PORTD.4
          OCR1BL=0x00;

          ảnh minh họa:

          Click image for larger version

Name:	khoi tao pwm.jpg
Views:	1
Size:	78.8 KB
ID:	1350827
          Đối với Tôi Đam mê là yếu tố không thể thiếu để quyết định sự Thành Công ...!
          Gmail: -Mobile: 0989.194.472

          Comment


          • #6
            cảm ơn tất cả mọi người.mình đã làm đc rồi.thất khó khi không hiểu nhiều về phần cứng.:d

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X