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

Tokes

Members
  • Постов

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

  • Посещение

Весь контент Tokes

  1. Можно попробовать. Но я не понимаю, как это может улучшить ситуацию. Даже если так, почему конструкторы этого блока на заводе делали иначе? Фазировку обмоток я не выяснял в своём блоке.
  2. Хорошо, я понял, нужно отматывать вторичку. А как он работает вообще, на каком принципе? Судя по импульсам на базе силового трансформатора не ШИМ модуляция, хотя блок является импульсным. Надо устранить пробел в знаниях
  3. Блок питания в стоке выдаёт 30 В, 0,4 А. В развязанной части оптопара через стабилитрон на 27 - 30 В, точно не мерял. Если просто поменять стабилитрон, к примеру на 12 Вольт - без нагрузки столько же и выдаёт. Небольшая нагрузка заставляет его тикать, падает напряжение и снова восстанавливается и так раз 5-7 в секунду. Если поменять стабилитрон на 7 В, то он и без нагрузки тикает, как под нагрузкой с 12 В стабилитроном. Как стабилизировать напряжение? Какой тут правильный механизм изменения напряжения? Где прочитать про такие блоки питания? На схеме номиналы даны в трёх цифрах, как в smd деталях. Делал так для упрощения процесса перерисовки схемы.
  4. @Геннадий , это понимание пришло, как только скомпилировал без оптимизации и получил сообщение о заполнении памяти в 150% Открытыми остались вопросы "Почему так себя ведёт компилятор со включённой оптимизацией?" и (или) " Где подробнее почитать можно про оптимизацию? ".
  5. Забыл Это была глобальная переменная. Добавил - всё заработало для приёмника, сейчас буду мучить передатчик. Пока вы отвечали прочёл пару статей про оптимизацию, но там общие фразы, на счёт volatile слышал много раз, но никогда не было нужны в использовании Где подробнее почитать можно про оптимизацию?
  6. Здравствуйте! Есть код, в котором выход из бесконечного цикла подразумевается по установке одного из флагов, но при симуляции в этом месте затык - программа уходит в зацикливание и даже если принудительно поставить флаг в единицу в окошке Watch 1, никак не реагирует. Флаг устанавливается в прерывании по переполнению таймера два раза, но если вызывать прерывание кликом мышки дважды - флаг устанавливается, но перехода не происходит всё равно:( void wait_timer_start(){ while(1){ if (flag & (1 << KEY_BIT_DONE)){ stop_timer(); flag &= ~(1 << KEY_BIT_DONE); // выключаем флаг окончания обработки бита break; // прервать бесконечный цикл } } } Дизассемблер этого момента выглядит так: if (flag & (1 << KEY_BIT_DONE)){ 00000043 LDS R24,0x0061 Load direct from data space 00000045 SBRS R24,0 Skip if bit in register set 00000046 RJMP PC-0x0000 Relative jump stop_timer(); 00000047 RCALL PC-0x000C Relative call subroutine flag &= ~(1 << KEY_BIT_DONE); 00000048 LDS R24,0x0061 Load direct from data space 0000004A ANDI R24,0xFE Logical AND with immediate 0000004B STS 0x0061,R24 Store direct to data space 0000004D RET Subroutine return По идее в строке 45 должна постоянно выполнятся проверка условия и в строке 46 возврат на 45, но в 46 строке идёт возврат на саму себя! Если я правильно всё понимаю. Это со включённой оптимизацией O1. Если оптимизацию выключить, то ассемблерный код превращается в: void wait_timer_start(){ 0000006F PUSH R28 Push register on stack 00000070 PUSH R29 Push register on stack 00000071 IN R28,0x3D In from I/O location 00000072 CLR R29 Clear Register if (flag & (1 << KEY_BIT_DONE)){ 00000073 LDS R24,0x0061 Load direct from data space 00000075 MOV R24,R24 Copy register 00000076 LDI R25,0x00 Load immediate 00000077 ANDI R24,0x01 Logical AND with immediate 00000078 CLR R25 Clear Register 00000079 OR R24,R25 Logical OR 0000007A BREQ PC+0x08 Branch if equal stop_timer(); 0000007B RCALL PC-0x0029 Relative call subroutine flag &= ~(1 << KEY_BIT_DONE); 0000007C LDS R24,0x0061 Load direct from data space 0000007E ANDI R24,0xFE Logical AND with immediate 0000007F STS 0x0061,R24 Store direct to data space break; 00000081 RJMP PC+0x0002 Relative jump } 00000082 RJMP PC-0x000F Relative jump } 00000083 POP R29 Pop register from stack 00000084 POP R28 Pop register from stack 00000085 RET Subroutine return И всё отлично работает, но тогда не влазят задержки из библиотеки <util/delay.h>. Почему так себя ведёт компилятор со включённой оптимизацией? Можно ли ему как-то помочь, чтобы он компилировал верный код? Контроллер ATTiny13A, студия 7.
  7. По поводу насыщения - а не от плотности тока проходящего зависит? Кнопка "спасибо" была удобнее )
  8. Намотал витков - не особо поменялось. Увеличил С3 в добавок - стало сносно. Спасибо за ответы.
  9. Речь об обмотке, что последовательно с L1 идёт?
  10. Здравствуйте! Как можно уменьшить ток ЭПРА? Дело в том, что в нашей деревне есть только 9 Вт УФ лампы и 18 Вт ЭПРА. Выбора нет - взял в таком составе. Схема очень похожа на эту: http://www.budyon.org/o-sistemah-pitaniya-lamp-dnevnogo-sveta/sh41/ Весь инет облазил, но так и не понял, что можно сделать. Лампа работает, но видно, как горит накал в ней.
  11. Почему бы не сдвигать картинку построчно? Либо одна строка сдвинулась на n%, за ней другая, потом третья и т. д. Просто и не так уныло Если затрагивался только один бит - то верните его на место и всё.
  12. Ладно. Спрошу по-другому. Где можно сейчас найти ту IDE, в котором все программы из любой книги K&R будут работать, как авторы писали? Даже если брать Linux - там тоже все примеры откомпилятся? Речь сейчас идёт не столько о контроллерах, сколько о литературе для общего изучения языка Си. Неужели все современные компиляторы для PIC, AVR, STM и других контроллеров до сих пор используют старые диалекты языков, когда в новых появились новые, широкие возможности, такие, как атомарные операции и т.п.? Или я всё не так понимаю?
  13. Это я касательно стандартных функций и некоторых объявлений. Многие современные компиляторы ругаются на тексты из K&R, им по-своему подавай. Так или иначе вопрос про С11 остаётся открытым.
  14. Я тут глянул, язык Си имеет несколько диалектов: «K&R» C (1978) ANSI C (1989) C90 (1990) C99 (1999) C11 (2011) Хотелось бы идти в ногу со временем. Имеет смысл учить новейший С11 или студии с этим стандартом не работают? На форумах часто предлагают прочесть книгу K&R, но многие фишки оттуда давно не работают. Какая самая свежая и актуальная книга по изучению программирования контроллеров на Си?
  15. Резистор этот я до этого пропаивал - бесполезно. Осциллограммы после увеличения тока стали напоминать правильные, т.е. не просто горбы, а почти прямоугольные импульсы с выбросами на фронте. Питание 494 у меня 12 В, изначально было около 20-24.
  16. Уменьшил номинал резистора, что к середине вывода шёл - всё завелось, ещё лучше, чем раньше. Спасибо за участие!
  17. Проблема в форме сигнала с трансформатора раскачки. Пять Вольт на клетку. Это теоретический максимум А это где-то 50% Опыт у меня, безусловно не большой, но по-моему так быть не должно. На входе трансформатора такие же импульсы, только однополярные, относительно земли развязанной части. ИИП включал через лампу - лампа загорается и тухнет, как при рабочем, при этом выходных напряжений нет.
  18. Окей, краб Можно тогда узнать каковы причины проседания напряжения в моём случае? Если можно - все возможные причины
  19. На странице 21, получается, запирающее напряжение эммитера больше, чем базы, что даёт возможность ещё быстрее закрыть этот транзистор.
  20. И правда, есть ответ. Только расширение файла не правильное. u не хватает в конце. (по крайней мере у меня только переименовав открылось)
  21. Возможно, ком-порт не тот выбран. Они, бывает, меняются. Загляните в диспетчер устройств винды и гляньте, на коком порту висит сейчас переходник в rs232. Так же можно посоветовать пнуть производителя выслать чёртов мануал, а не коммерческое предложение.
  22. А те, что до этого стояли, с которыми всё работало - тоже другой цоколёвки? С ними та же ситуация. Звоняться одинаково, как целые. Если не сложно, поясните работу узла конденсатора на 50 В 1 мкФ и двух диодов, включённых последовательно в цепях эммитеров 945 транзисторов в цепи раскачки.
  23. Всем здравствуйте! В блоке питания сгорели силовые ключи 13007 после большой нагрузки, их поменял вместе с базовыми резисторы, в горячей части теперь всё нормально. Проблема в неразвязанной части. Микросхема 494 работает нормально, ШИМ модуляция присутствует, на 8 и 11 выходе есть импульсы размахом около 14 Вольт, регулируются резистором на 4 вывод, но, как только ставлю 945 транзисторы амплитуда резко уменьшается до 0,6-1 В. Транзисторы менял. Микросхему менял. Диоды все целые в этой цепи. Трансформатор ставил другой (только эти три вывода задействовал) - результат тот же. Схему предлагаю. Схема изначального блока питания, переделка отличается тем, что нет цепей выработки PS-ON и цепи супервизора напряжений.
×
×
  • Создать...