logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] PWM Atmega328p OC2B - brak sygnału na PD3, PB3 działa, OCR2A/OCR2B i TCCR2A/TCCR2B

lewara 05 Lut 2023 20:28 315 1
REKLAMA
  • #1 20424137
    lewara
    Poziom 5  
    Siemka mam problem z pwm
    ustawiam tak aby sygnal pwm byl na dwoch pinach tzn PD3 oraz PB3
    Tylko na PB3 jest sygnal.

    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    int main(void)
    {
    	DDRD = ( 1 << PD3 );
    	DDRB = ( 1 << PB3 );
    	
    	OCR2B = 50;
    	
    	TCCR2A = 0;
    	TCCR2B = 0;
    	
    	TCCR2A |= (1 << COM2A0) | (1 << COM2B0);
    	
    	TCCR2A |= (0 << WGM20) | (1 << WGM21);
    	TCCR2B |= (0 << WGM22);
    
    	TCCR2B |=  (1 << CS20 );
    	
        /* Replace with your application code */
        while (1) 
        {
        }
    }
    
    


    Zmienilem procka i nadal to samo

    EDIT:

    Po przypisaniu wartosci do rejestru OCR2A = 50;
    PWM zaczał działać - pytanie tylko dlaczego skoro do OC2B przypisany jest rejestr porównawczy OCR2B


    Po dalszej analizie wywnioskowałem, że aby korzystać z OCR2B, rejestr OCR2A musi byc wiekszy lub równy OCR2B.
  • REKLAMA
  • #2 20424279
    lewara
    Poziom 5  
    In CTC mode the counter is cleared to zero when the counter value (TCNT2) matches the OCR2A. The OCR2A defines the top
    value for the counter, hence also its resolution.
REKLAMA