Показано с 1 по 10 из 29

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: ШИМ. Как запрограммировать?

    Вот пример, выдает на D13 51Гц

    Soft PWM для Carduino/Arduino
    PHP код:
    #define D13_High PORTB |=B00100000 
    #define D13_LOW PORTB &= B11011111 
    volatile unsigned int tcnt2
    volatile byte pwm_time
    byte bytes[] = {128};   

    void setup()   
    {  
        
    TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2  
        
    TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика 
        
    TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика 
        
    ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора 
        
    tcnt2 237;      
        
    TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2.   
    }   

    void loop()  
    {  

    //****************обработчик прерывания******************** 
    ISR(TIMER2_OVF_vect)  

        
    TCNT2 tcnt2;   
     
    pwm_time++;       
        if(
    bytes[0] > pwm_timeD13_High; else D13_LOW


  2. #2
    Пользователь
    Регистрация
    19.09.2010
    Возраст
    46
    Сообщений
    21
    Вес репутации
    194

    По умолчанию Re: ШИМ. Как запрограммировать?

    Цитата Сообщение от Chip Посмотреть сообщение
    PHP код:
        tcnt2 237;      
        .......
        
    TCNT2 tcnt2
    Я правильно понимаю, что
    tcnt2 = 256 - (16000000/31000/частота_ШИМ_Гц)
    и соответственно tcnt2=254 даст частоту где-то между 200 и 300Гц?

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •