Перейти к контенту

Таблица лидеров

  1. Sergey

    Sergey

    Мастер


    • Баллы

      1

    • Число публикаций

      17


Популярные публикации

Отображает публикации с лучшей репутацией с 18.12.2024 во всех приложениях

  1. Дело было вечером, делать было нечего. А асик в ванну надо было погружать. 555 таймеров под рукой не было, а тинька была. Далее скрины и прошивка. Там все понятно. //#define F_CPU 9600000UL #define BIGSUMM 1875000000 #define PREDDEL 18750000 #define PINF PB0 // пин частоты volatile uint32_t ADDCOUNTER; // число + к счетчику volatile uint32_t counter=0; // счетчик uint16_t f=1510; // настраиваемая частота в попугаях. хотя по идее должно быть в Гц, //но лень разбираться. в данном случае стоит 180гц, что соответствует примерно 5500 оборотов. void f_change(uint16_t f) { ADDCOUNTER=(BIGSUMM/(PREDDEL/f))*1000; } ISR(TIM0_OVF_vect) { counter=counter+ADDCOUNTER; if (counter >= BIGSUMM) { counter=counter-BIGSUMM; PORTB^=(1<<PB0); } } void setup() { // настройка пинов DDRB=1; PORTB=6; // настроим таймер TCCR0B=1;// предделитель 1 TIMSK0=2;// прерывание по переполнению. ADDCOUNTER=(BIGSUMM/(PREDDEL/f))*1000; } void loop() { f_change(f); }
    1 балл
Эта таблица лидеров составлена Москва/GMT+03:00
×
×
  • Создать...

Важная информация

Условия использования