Шим ~30кгц atmega328

Тема в разделе "Микроконтроллеры AVR", создана пользователем Funny59, 17 окт 2017.

Метки:
  1. Funny59

    Funny59 Нерд

    Надо настроить шим на 30кгц на меге328 работающей на частоте 16мгц.
    В ардуино делается так:
    Код (C++):
    TCCR1B=TCCR1B&0b11111000|0x01;
    analogWrite(9,130);
    Накарябал такой код:
    Код (C++):
    DDRB = (1<<DDB1);
    TCCR1A = (1<<COM1A1)|(1<<WGM11);
    TCCR1B = (1<<WGM12)|(1<<CS10);
    OCR1A = 0x80;
    Но не пашет, шим нужен для дц-дц преобразователя
     
  2. rkit

    rkit Гуру

    Ардуино это амтега328 на частоте 16 мГц.
     
  3. Funny59

    Funny59 Нерд

    я понимю, на залить просто hex скомпилированный через arduino ide не получается
     
  4. rkit

    rkit Гуру

    Я думаю, что лучше разобраться с этим. Проверяйте фьюзы.
     
  5. Funny59

    Funny59 Нерд

    Low Fuse 0xff
    High Fuse 0xdf
    Я уже просто не знаю в чем дело может быть, всё испробовал
     
  6. ostrov

    ostrov Гуру

    Как заливаете то?
     
  7. Funny59

    Funny59 Нерд

    usbasp + avrdude
     
  8. ostrov

    ostrov Гуру

    И что конкретно не получается? Прочитать то дает?
     
  9. Funny59

    Funny59 Нерд

    Не получается завести шим на частоте 30кгц
     
  10. ostrov

    ostrov Гуру

    Так заливать получается или нет?

    В конце концов всегда можно сделать ШИМ "вручную". Я так делаю если нужно точное значение или оно регулируется извне, особенно в широких пределах. С помощью micros().
     
  11. ostrov

    ostrov Гуру

    328 не жалко для такой задачи? Аттини потянет с успехом. Любая. Да и 555. )
     
  12. DetSimen

    DetSimen Guest

    34063 нормальный DC-DC. И стоит капейки.
     
  13. Funny59

    Funny59 Нерд

    не жалко, мне же не просто для шим нужно
     
  14. Funny59

    Funny59 Нерд

    знаю, но надо же осваивать что то новое, да и место на плате критично
     
  15. ostrov

    ostrov Гуру

    Что то еще крутится на этой 328?
     
  16. DetSimen

    DetSimen Guest

    34063 - ооочень маинький. DIP8. Зато ему никакой Ардуины не нада. Кроме дросселя. Дак оне щас тоже мааааинькие есть.
     
  17. Funny59

    Funny59 Нерд

    пока ничего, в будущем часы будут
     
  18. Funny59

    Funny59 Нерд

    платка 18 см2
     
  19. ostrov

    ostrov Гуру

    Вам написать что ли программку на несколько строк, которая будет выдавать строго 30 кГц?
     
  20. Funny59

    Funny59 Нерд

    Не стоит, я просто попросил совета, может кто-нибудь сталкивался с такой проблемой

    Но вроде бы я разобрался с проблемой:
    Код (C++):
    DDRB = (1<<1);
    OCR1A = 0x80;
    TCCR1A = (1<<COM1A0)|(1<<COM1A1)|(1<<WGM11)|(1<<WGM10);
    TCCR1B = TCCR1B & 0b11111000 | 0x01;
    Вот так что то заработало