Перейти к содержанию

Lerik-Co

Members
  • Постов

    178
  • Зарегистрирован

  • Посещение

Весь контент Lerik-Co

  1. Затворы у меня управляются тремя биполярниками, составляющими драйвер. Значит надо отвязать их питание от питания мосфетов и запитать их (биполярники) через фильтр. Так выходит? Или я опять не туда смотрю? А от шины питания микроконтроллера их нельзя запитать? А исток мосфетов защищать не надо?
  2. Я сам без понятия... Но вот тут автор выкладывал результат замера: Без VT3, VT4: http://radikal.ru/fp/031e3b2acab548bcb6e47478ec77976f C VT3, VT4: http://radikal.ru/fp/e5358ab0b3af4dba85829f88fde76bb5 Результат, как бы налицо. Да и смотреть всё это он начал из-а того, что собрал сначала без них и получил утюг... Да и поставить два транзистора - не так уж и сложно, кому от этого хуже станет? Набил в гугл "супрессор", он мне выдал "защитные диоды". Это они? И что, можно поставить один защитный диод между +12 и GND? Без резистора? И его не "выбьет" при скачке напряжения? Или же их ставить на каждый мосфет на сток-исток? А если ставить LC-фильтр, то это какой же дроссель должен быть, если номинальная нагрузка у меня около 13А? Компактно вручную сделать получится? Кольца ферритовые какие-то у меня были. Какие нужны? Как рассчитать, от чего оттолкуться? В общем посоветуйте, что лучше сделать?
  3. Там будет 72 Гц, но тем не менее, автор на другом форуме перепробовал несколько вариантов схем и частот. Даже в таком исполнении мосфеты немного греются. А без VT3, VT4 - вообще швах.
  4. Эмм... Стабилитрон же не обеспечит pull-down? Керамический 100нФ на массу будет нормально? ШИМ только с PB0. Поэтому там и драйвер на трех биполярниках. С PB1 только ВКЛ или ВЫКЛ. Поэтому там попроще. В исходнике биполярники были другие. BC547 и ВС557 подойдут?
  5. Блин, весь кайф обломали! Товарищи, посмотрите, плз, схемку блока управления ПТФ на авто. Нигде явных косяков нету? (за основу была взята проверенная автором схема с сайта)
  6. +10500 Повторю свой вопрос: как здесь плюсануть в репу пользователю? Или здесь изменять рейтинг можно только сообщениям?
  7. Не надо путать лень и неуверенность в переводе даташита с английского. ЗЫ: Чтобы пресечь дальнейший офтопик скажу сразу: да, родной язык для меня русский, и не надо меня упрекать в незнании английского. ЗЗЫ: С действиями и мнением администрации и модераторов полностью солидарен. Не обсуждаю и не оспариваю, ибо наказуемо.
  8. Да, даташит прочитать слабо, хотя я и пытаюсь. Никто на русский не переводил? Хотя табличку с битами по регистру видел, и начальные значения там находил. Но я лучше всё-таки еще раз переспрошу, чем буду потом глюки вылавливать. А Вас искренне благодарю за помощь!
  9. @Alex , я ж написал "условия задачи"! При старте/рестарте МК (по питанию, ресету или по WDT) эти регистры по дефолту уже обнулены или их надо обязательно обнулять самостоятельно?
  10. Подскажите, инициализация таймера у меня производится только один раз перед главным циклом. Обязательно ли при инициализации таймера выполнять такие строки? TCNT0=0x00; //Обнуляем счетный регистр OCR0A=0x00; //Обнуляем регистр сравнения A OCR0B=0x00; //Обнуляем регистр сравнения B А то у меня место в памяти заканчивается, а эти команды отъедают 0,6% памяти, что не мало...
  11. Товарищи, а я правильно понимаю, что на ATtiny13A я могу таймер использовать не только в качестве ШИМ (скажем на PB0), но и в качестве обычного таймера по переполнению? Одновременно? Т.е. как-то так: //Сначала настраиваем ШИМ, он будет дрыгать ножкой PB0: TCCR0A |= (1<<COM0A1) | (0<<COM0A0) //сброс вывода OC0A в 0 при совпадении с A во время увеличения значения счетчика, установка вывода OC0A в 1 при совпадении с A во время уменьшения значения счетчика | (0<<COM0B1) | (0<<COM0B0) //вывод OC0B не функционирует | (1<<WGM01) | (1<<WGM00); //Режим ШИМ TCCR0B |= (0<<FOC0A) |(0<<FOC0B) //Ничего принудительно устанавливать не будем | (0<<WGM02) //Не используется в нашем режиме | (1<<CS02) | (0<<CS01) |(1<<CS00); //делитель N = 1024 OCR0A = 100; // Значение регистра определяет скважность //А тут запускаем таймер с той же частотой, что и ШИМ TIMSK0 = (1 << OCIE0A); // Разрешаем прерывание по совпадению таймера sei(); // Включаем механизм прерываний //... //А этот обработчик будет вызываться таймером ISR (TIM0_COMPA_vect) { //что-то делаем } Так делать можно? А разную частоту на ШИМ и на таймер установить нельзя?
  12. Мне надо проверить совпадение второго бита в байте uchData со значением ACT_LEV.
  13. @MillyVolt2 , ясно, спасибо! Только, наверное, ATOMIC_RESTORESTATE, а не ATOMIC_RESTORE_STATE. А еще детсадовский вопрос: Если исходные данные следующие: unsigned char uchData = 0b00000100; #define ACT_LEV 0 //Тогда вот такая проверка нормально работает, ибо ACT_LEV=0: if ((uchData & (1<<PB2)) == ACT_LEV)){/*...*/} А вот если сменить ACT_LEV=1, т.е. unsigned char uchData = 0b00000100; #define ACT_LEV 1 //Тогда следующее условие не выполнится никогда if ((uchData & (1<<PB2)) == ACT_LEV)){/*...*/} //ибо, как я понял, результатом операции "uchData & (1<<PB2)" будет целый байт "0b00000100"=4, а не бит "1". Так что ли? Писать условие в виде: if ((uchData & (1<<PB2)) == (ACT_LEV<<PB2)){/*...*/} как-то громоздко... А как упростить - не соображу.
  14. А прерывания отключать? В даташите, кажется, есть пример где отключают... А вот про оптимизацию там ни слова.
  15. Или достаточно отключить на это время прерывания? cli(); CLKPR=0x80; CLKPR=0x00; sei();
  16. Просто для наглядности. Про cm_IntCompareFilesByContent в TC , FC и WinMerge знаю. Решил использовать "режим ШИМ" (WGM01=0, WGM00=1). Хз почему. Следующий вопрос: Для программного изменения предделителя тактового сигнала используется регистр CLKPR. Причем сначала его надо выставить в CLKPR=0x80, а потом изменить в нужное значение, в моем случае это CLKPR=0x00. Вдобавок эти две операции должны обязательно следовать друг за другом, поэтому этот участок кода даже исключают из оптимизации. Так? В имеющемся у меня исходние на CodeWizardAVR это было оформлено так: #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif Как мне эти две строчки исключить из оптимизации в С/AtmelStudio ? И надо ли это делать вообще?
  17. @Геннадий, спасибо. Объясние, плз, на ATtiny13 чем отличаются: * режим ШИМ (WGM01=0, WGM00=1) *режиме коррекции фазы ШИМ (WGM01=1, WGM00=1) Хочу плавно зажигать лампу от нуля до 50% яркости. Частота шима нужна около 100Гц. Какой вариант использовать?
  18. Спасибо, действительно в PonyProg есть возможность отрыть/сохранить файлы в разных форматах. Причем если открыть оба hex и сохранить оба снова в hex, то оба будут приведены к одинаковому формату. А содержимое bin'ов - оно не наглядное, глазами сравнивать неудобно. А так - да, тоже становятся идентичными.
  19. Именно PonyProg не видит мой USBasp. А в SinaProg2.1.1, AVRDUDEprog3.3, Khazama AVR Programmer в окне сохранения файла можно выбрать только Тип "*.hex". И никаких бинов.
  20. @Геннадий так я ж и спрашиваю - чем сохранить? Какой программой?
  21. Подскажите, слева прошивка, которую я заливал в МК, справа прошивка, которую я после прошивки слил с МК. В принципе видно, что прошивка одинаковая, но записана в каких-то разных форматах. Есть типовые инструменты, позволяющие перевести один формат в другой?
  22. @GalatZ, если внешнее прерывание настроено на срабатывание по заднему (спадающему) фронту, то и срабатывание будет происходить только по заднему фронту, а по переднему не будет. Другое дело, что ты можешь настроить прерывание и по другому, например только по переднему или по обеим (по изменению). Только учти, что не все настройки подходят для того, чтобы вывести МК из режима sleep (если ты его используешь). Более того, тебе сейчас расскажут, что ты, скорее всего, вообще зря используешь такие прерывания. Кстати, с какой целью ты их используешь? Эмм.. почему long int? До 10'000 мне и обыный (short) int досчитает. Нет? Так я ж его (счетчик) как раз и обнуляю на 10'000. Почему должны быть сбои? На самом деле количество вариантов у меня несколько больше. Если быть точным, то это 10 секунд, 5 секунд, 2 секунды, 1 секунда, 500мс, 100мс, 50мс, 10мс. И не факт, что завтра моя буйная фантазия не захочет ввести еще какой-нить таймер, скажем, на 3 секунды. И с каскадными счетчиками тут как-то становится сложновато, ибо периоды не кратные друг другу...
×
×
  • Создать...