Jump to content

На чем писать  

582 members have voted

  1. 1. Что чаще используете в разработках?

    • Assembler
      162
    • C
      296
    • Что-то еще
      63


Recommended Posts

44 минуты назад, COKPOWEHEU сказал:

неужели так сложно выложить сюда на форум пример?

Да, сложно - программированием МК я занимаюсь не часто. В данный момент на моём рабочем столе совершенно другие задачи. Поднимать программерскую среду мне не с руки.

46 минут назад, COKPOWEHEU сказал:

Угу, давайте еще смешивать алгоритм и электрическую схему. А чего с музыкальном произведением не сравниваете? Ведь общего между ними столько же.

Именно. И музыкальный редактор был моим первым проектом на РК-86. Но в силу того, что в этой теме вообще мало кто пробавляется по нынешним временам - не вижу смысла расширять рамки дискуссии аргументами, которые тем паче не будут вообще восприняты, поскольку не являются актуальными компетенциями для тусовки.

50 минут назад, COKPOWEHEU сказал:

Многие программы и правда удобно представлять графами, но уж точно не блок-схемой

Это всего лишь ваши персональные ограничивающие убеждения. Мне любая система удобна для анализа именно виде блок-схемы - даже психика (человеческое поведение).

54 минуты назад, COKPOWEHEU сказал:

Граф или другая абстрактная схема может использоваться при анализе задачи, и так или иначе будет представлен в коде. Но не 1 в 1 же!

Граф и его разновидность - блок-схема, есть метаописание любой системы. Именно МЕТА - высший уровень обобщения и абстрагирования.

56 минут назад, COKPOWEHEU сказал:

Значит мои опасения подтвердились. Оказывается, существуют личности, считающие что дорисовав вокруг кода рамочки и стрелочки можно сделать его более наглядным. Хотя на самом деле это всего лишь загромождение поля зрения ненужной графикой.

Это всего лишь ваши персональные ограничивающие убеждения (ОУ - понятие из психологии, обозначающее границы допустимого для конкретного субъекта).

Суть - не в рамочках, а в процедуре структурирования Системы - в которую входит разграничение отдельных объектоа в независимые подсистемы, связываемые хорошо презентуемыми связями. При этом, сами связи должны отчётливо специфицироваться по типу (протоколу и функциональному назначению) - и не отдельным списком, а тут-же, в едином базисном образе-отображении.

У мышления - свои нейрофизиологические законы и разделение границ является важнейшим фактором повышения адекватности психической модели.

ХИНТ: в психологии обучение клиента  правильной расстановке границ является одним из важнейших приёмов решения психологических проблем - слишком часто и слишком болезненно люди в это вмазываются в своей повседневной жизни.

Если графическая линия помогает этому процессу - так тому и быть.

1 час назад, COKPOWEHEU сказал:

Подход LabView в этом смысле лучше.

Ещё раз: лабвью - весьма неудачный пример визуализации. А без показа сигналов там вообще нечего ловить было б.

В целом - я ей не пользуюсь, поскольку сильно раздражает своей недоделанностью: делался нишевой коммерческий продукт на основе недостаточной компетентности программеров в самой прикладной задаче.

1 час назад, COKPOWEHEU сказал:

Но вот блок-схемы сами по себе годятся только для демонстрации какого-то простого алгоритма или обучении основам программирования

Просто вы не умеете готовить кошек (с) анекдот

ХИНТ: каждый элемент визуальной рабочей среды должен позволять входить внутрь объекта и производить в нём нужные изменения. Причём, это с неограниченной вложенностью (вплоть до конкретного объектного кода, лежащего на дне этой структуры).

Таким образом "квадратики" - это окна доступа к содержащимся в них информационным обектам (в полном соответствии с принципами ООП). И линии связи. И маркеры. И всё-всё-всё - есть естественные ворота для доступа к нутру ЭТОГО объекта. То есть, это гипертекст - в его графической реинкарнации...

1 час назад, COKPOWEHEU сказал:

Так вот, есть ли у флоучарта РЕАЛЬНЫЕ преимущества перед... ну, скажем, Си?

Возьмём в качестве примера упоминавшийся Алгоритм Билдер: это АССЕМБЛЕР! То есть, уровень объектного кода. По сравнению с классическим АСМ для тех же МК, эффективность работы в нём в три-пять раз выше. А то и на порядок - приближая по трудоёмкости процесс создания объектного кода к ЯВУ. Но при этом, доступ к физической структуре процессора (манипулирование регистрами, вылизывание скоростей работы и т.п.) в нём сохранены на уровне АСМ и позволяют в разы поднимать скорость по сравнению с Сишными кодами. При этом объёмы кода - тоже в разы меньшие, чем в ЯВУ. В большие разы...

В качестве примера: я использую атмелы в гитарных примочках - и на младших кристаллах реализую не только управление примочкой, но и саму обработку сигнала. Не в прямую, разумеется - у меня гибридная аналого-цифровая технология. Но скорость - критически важна. И я легко в АБ выжимаю из кристалла всё, что он может физически - а может он много (от управляемых искажений, компресси и темброобработки, до пространственных эффектов - привлечением внешней памяти для хранения отсчёиов).

На Си это вообще не решается - категорически. А на АБ я работаю, как уже сказал, в несколько раз быстрей, чем на АСМ.

По объёмам мои коды вписываются в восьминожки - с их куцей памятью, да и вообще скудными системными ресурсами.

Совместная разработку на АБ практикую - никаких проблем. Как с любой другой средой создания контента. Надо только, что б партнёр имел навык работы в АБ.

ХИНТ:  проект в АБ - фактически самодокументируемый, потому комментариев нужен минимум-миниморум и в отношении самой прикладной задачи, а не рабочего кода.


Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Share this post


Link to post
Share on other sites
5 minutes ago, peratron said:

Да, сложно - программированием МК я занимаюсь не часто. В данный момент на моём рабочем столе совершенно другие задачи. Поднимать программерскую среду мне не с руки.

вот по моему этой одной фразой человек ВСЕ о себе сказал. Миг 29 он программировал... ага


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
30 минут назад, Signus сказал:

Типичный пример - ОС реального времени с ее прерываниями разного приоритета, возникающие в любом месте исполняемого кода.

Мой первый проект на РК-86 был именно РВ - причём, для решения прикладной задачи пришлось написать по сути ядро ОС. Я это понял не сразу - довольно много потратил времени тыкаясь вслепую.

Потом сел - и стал анализировать, во что упёрся - что и вылилось в программу, которая функционально есть именно ОС.

Сама задача - музыкальный редактор электронных барабанов. Сначала я писал управление внешним синтезатором - но потом разохотился и сделал трёхканальный сэмплер (с ШИМ-выводом).

Справка по РК-86: 8080 с тактом 1.6 МГц, полное отсутствие таймирования (нет кристаллов в системе - несущую формировать можно только программно). И вишенкой на торте - дисплей, гасящий процессор на кадой строке и выгребающий строку на ПДП.

Так вот: я сделал именно систему РВ - при отсутствии системных часов. И всё при этом успевал.

Сам принцип тайминга - расчёт машинных тактов (а для хохмы - у 8080 переменный цикл команд, от 3 до 8 тактов). Так вот ядро следило за командным потоком, считало время - на фоне остальных задач, и выдавало сэмплы на выходной регистр. Причём, надо было ещё перевести сэмпл в ШИМ...

Так штааа... (с) ЕБН

43 минуты назад, Signus сказал:

"инженеришки" ( кстати, почему так пренебрежительно? это не каста кандидатов наук? :D ) 

Это я - это мой хлеб. Потому, как хочу - так и называюсь... :P

46 минут назад, Signus сказал:

Программисты - достаточно ленивы

Именно. Потому "я всегда так делал" - главный аргумент. В том числе - и в этой дискуссии.

А тех, кто делает не так - сразу обнулять. Как то попытались устроить мне в ответ на моё простое указание более эфеективного направления развития. Не на основе анализа, не подумавши над сказанным - а сразу почти в оскорбительном тоне. Только я про ранговое доминирование тоже в курсе - и знаю про него побольше, чем тусовка :aggressive:

 


Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Share this post


Link to post
Share on other sites

Импульсный источник питания - расчет за 10 минут в eDesignSuite

Как ориентироваться в огромном количестве существующих вариантов, чтобы выбрать наиболее подходящий для конкретного случая. «Ручной» перебор всех вариантов может оказаться весьма трудоемким процессом, а полученный результат – далеко не оптимальным. Специализированное программное обеспечение, позволяет уменьшить количество рутинных операций при проектировании.

Подробнее

5 часов назад, Signus сказал:

Типичный пример - ОС реального времени

Неудачный пример. Он отлично ложится на модель одновременного выполнения нескольких потоков.

5 часов назад, Signus сказал:

Процедурные языки давно ушли в свою нишу, что-то более-мене серьезное пишется на объектных языках. <...> Тут вообще графу делать нечего.

ООП программа точно так же линейна, как процедурная, так что на граф ложится не хуже (насколько ужасно оно будет выглядеть в виде блок-схемы - другой вопрос)

А вот как положить на блок-схему функциональный язык или, скажем, язык запросов, с ходу не могу представить.

4 часа назад, peratron сказал:

Да, сложно - программированием МК я занимаюсь не часто. В данный момент на моём рабочем столе совершенно другие задачи. Поднимать программерскую среду мне не с руки.

Вот теперь вы и сами убедились в "удобстве" своего языка. Мне для написания примера это не понадобилось. Хватило средств форума.

4 часа назад, peratron сказал:

Мне любая система удобна для анализа именно виде блок-схемы - даже психика (человеческое поведение).

Очевидно, вы не изучали эту тему. Человеческое мышление не ложится на линейный алгоритм вообще никак. Единственная модель, которая дает правдоподобный результат - нейронная сеть.

4 часа назад, peratron сказал:

Это всего лишь ваши персональные ограничивающие убеждения.

но они основаны на практическом и теоретическом опыте. В отличие от ваших.

5 часов назад, peratron сказал:
6 часов назад, COKPOWEHEU сказал:

Но вот блок-схемы сами по себе годятся только для демонстрации какого-то простого алгоритма или обучении основам программирования

Просто вы не умеете готовить кошек (с) анекдот

Нет, просто я из них вырос, и для моих задач этого уровня абстракции уже недостаточно.

5 часов назад, peratron сказал:

Возьмём в качестве примера упоминавшийся Алгоритм Билдер: это АССЕМБЛЕР! То есть, уровень объектного кода. По сравнению с классическим АСМ для тех же МК, эффективность работы в нём в три-пять раз выше. А то и на порядок - приближая по трудоёмкости процесс создания объектного кода к ЯВУ

Ссылку на исследования в студию!

5 часов назад, peratron сказал:

На Си это вообще не решается - категорически. А на АБ я работаю, как уже сказал, в несколько раз быстрей, чем на АСМ.

Остается только процитировать вас же "просто вы не умеете готовить кошек". Все остальные почему-то умудряются писать на Си программы лишь немного уступающие ассемблерным, в крайнем случае используют ассемблерные вставки. А у вас вот "не решается - категорически".

4 часа назад, peratron сказал:

Справка по РК-86: 8080 с тактом 1.6 МГц, полное отсутствие таймирования (нет кристаллов в системе - несущую формировать можно только программно). И вишенкой на торте - дисплей, гасящий процессор на кадой строке и выгребающий строку на ПДП.

начали мериться сложностью программ? Год назад реализовывал графику на std32f103, там 72 МГц тактовая частота и 20 кБ памяти. Написано на Си.

 


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites
                     

Как упростить выбор ИП для промышленного применения?

Компания Mean Well выпускает широкий перечень встраиваемых источников питания с креплением на шасси, имеющих, на первый взгляд, схожие характеристики. Статья расскажет о ключевых особенностях выпускаемых семейств и упростит выбор источника питания для промышленного применения.

Подробнее

В 27.09.2018 в 07:03, COKPOWEHEU сказал:

ООП программа точно так же линейна, как процедурная, так что на граф ложится не хуже

Интересно, как в графе будет выглядеть процесс наследования... ещё к тому же многоуровневого.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites
                     

Преимущества новых высоковольтных SOI-драйверов Infineon

При производстве драйверов силовых транзисторов компания Infineon использует различные технологии: JI, SOI, CT. Драйверы, выполненные с применением технологии SOI, имеют целый ряд преимуществ по сравнению с классическими JI-драйверами. В статье рассматриваются эти преимущества на примере новых семейств драйверов 650 В 2ED210x и 2ED218x.

Подробнее

Точно так же, ведь блок-схема работает с последовательностью выполнения, а не с переменными.

 _______________________
/  std::cin >> var.x   /
~~~~~~~~~~~~~~~~~~~~~~~
          |
 ~~~~~~~~~~~~~~~~~~~~~
|  var.calc( var.x )  |
 ~~~~~~~~~~~~~~~~~~~~~

 


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

Тогда удел блок-схем максимум это описание методов объектов. Для конструирования объектов нужен совсем другой графический механизм. А объекты, изменяемые в процессе работы тоже не представимы в виде блок-схем.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Я и говорю, что блок-схема это квадраты, нарисованные поверх кода. Ну, может добавлено сворачивание блоков, подсветка переменных или еще какие IDE'шные мелочи. Не просто же так единственная область применения блок-схем - обучение простым алгоритмам в школе. Все более-менее серьезное программирование идет на текстовых языках, в крайнем случае - псевдокоде. Даже для настройки ПЛИС (казалось бы, интегральная схема!) используется текст.

Вот где графические языки хороши - автоматизация. Там, где настройкой занимается кто угодно, только не программист.


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

@AvrAsm , о, великий Гуру! Целый год ждали Вашего великомудрого совета!  :crazy:


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites

но дождались же...


Мудрость приходит вместе с импотенцией...

Share this post


Link to post
Share on other sites

А чё не так то? Чего столько сарказма? Чего вы целый год ждали? Вчерась только зарегался, сразу и проголосовал!

Тема "кто на чем пишет"!

Вот я и написал что пишу на трёх языках, и все они ассемблер! :rolleyes:

Дабы поддержать всех нормальных пацанов!

Share this post


Link to post
Share on other sites
58 минут назад, AvrAsm сказал:

А чё не так то?

Да то, что некропостинг хоть и не является нарушением, но зело не приветствуется.


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites
3 минуты назад, Falconist сказал:

Да то, что некропостинг хоть и не является нарушением, но зело не приветствуется.

У вас эта тема в самом верху ветки "AVR"! с голосовалкой! еще и закреплена!

Любой новый пользователь начинает читать именно с неё!

Странное у Вас представление о некропостинге!

:wacko:

Share this post


Link to post
Share on other sites

Поднять старую тему вопросом - нормально.

Поднять ее ответом, уже давным-давно и нафиг никому не нужным - просто глупо.


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites
04.11.2019 в 10:12, AvrAsm сказал:

Дабы поддержать всех нормальных пацанов!

на ассемблере пишут только пенсионеры (!), я, кстати, тоже умею :) !


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

а на Си пишет только молодежь, которая не в состоянии пользоваться ассемблером...


Мудрость приходит вместе с импотенцией...

Share this post


Link to post
Share on other sites
20 часов назад, Starichok сказал:

а на Си пишет только молодежь, которая не в состоянии пользоваться ассемблером...

А кто же тогда пишет на плюсах???


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
23 часа назад, Starichok сказал:

а на Си пишет только молодежь, которая не в состоянии пользоваться ассемблером...

Я бы сказал - не в состоянии понять, как работает МК. Поэтому пишут по принципу ХОЧУ (как звучит начало многих тем у начинающих), не вдаваясь в вопрос КАК ЭТО МОЖНО РЕАЛИЗОВАТЬ.

Share this post


Link to post
Share on other sites
05.12.2019 в 17:48, ruhi сказал:

кто же тогда пишет на плюсах???

кто немножко умнее тех, кто пишет без плюсов.

а вообще, дело вкуса.

на С++ я пишу для компа, а для МК я пишу на ассемблере.


Мудрость приходит вместе с импотенцией...

Share this post


Link to post
Share on other sites
07.12.2019 в 11:34, Starichok сказал:

, а для МК я пишу на ассемблере.

хорошо что те кто писал драйвер для  TCP/IP-стека (LWIP) для атмеловских SAME70 контроллеров "не в состоянии пользоваться ассемблером" :) !


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

Есть такая тема, называется "автоматное программирование". Там составляется блок-схема и из неё генерируется код на с++. В этой среде можно делать очень сложные проекты. Код генерируется очень надёжный. Я иногда использую это средство. Правда приходится немного руками поработать с полученным кодом, переделать под си компилятор.


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites
07.12.2019 в 18:34, Starichok сказал:

а для МК я пишу на ассемблере

с определенного уровня камней это теряет смысл, так как затраты времени уже не оправдываются выигрышем по скорости. Ее и так более чем дофига. И даже кривой код на плюсах летит так, как будто на асме писан. Так что с умом надо свое время тратить все таки


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
1 час назад, mail_robot сказал:

с определенного уровня камней это теряет смысл, так как затраты времени уже не оправдываются выигрышем по скорости. Ее и так более чем дофига. И даже кривой код на плюсах летит так, как будто на асме писан. Так что с умом надо свое время тратить все таки

Не все так просто. Давеча разбирался с кодом "бабочки" БПФ (FFT) и неожиданно для себя (век живи - век учись) выяснил, что написать "бабочку" на Си - значит утратить более 70% производительности МК в расчете FFT. И это при том, что сама эта задача очень ресурсоемкая. А все потому, что на Си невозможно объяснить компилятору как обращаться с MAC-командами (DSP-командами) в части адресации операндов. То есть либо грустно жевать библиотечный код (тоже, кстати на АСМ)  со специфическими участками связанными с универсальностью этого кода (весьма заметно тормозит задачу), либо писать свой под свои параметры FFT. Но свой - только на АСМе.

Edited by my504

Share this post


Link to post
Share on other sites

дружище, ты прям очень молодец. Я тобой искренне восхищен. Можешь передать маме


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

  • Similar Content

    • By Prozac
      Здравствуйте, уважаемые форумчане! Вообще говоря, не имею такой привычки - донимать людей вопросами, и до всего стараюсь доходить самостоятельно. Но в данном случае без "помощи зала" совсем никак: перепробовал уже все, что только смог придумать - а "воз и ныне там! Поэтому и обращаюсь сюда - возможно, кто-то уже сталкивался с чем-то подобным, и сумел найти решение...
      Суть проблемы в следующем: решил построить ШИМ-контроллер для автомобильного вентилятора охлаждения ("карлсона"), но никак не могу заставить его работать - как только открываются VT2 и VT3, подключая нагрузку, МК уходит в резет или виснет (чаше - первое)!.. Сбросившись, опять пытается подключить нагрузку, и опять резетится, и так - без конца! Причем, изначально решил испытать схему не на индуктивной нагрузке (электромоторе), а на вполне себе пассивной 60Вт (около 3A по току) лампочке из фары - и та же фигня: МК пытается запуститься, сбрасывается, лампа моргает, дергается... Даже не ШИМ, а обычное мигание лампой с частотой 1Гц через несколько вспышек или вешает МК, или резетит его (что видно по сбою ритма моргания). При этом без нагрузки - по осциллографу, подключенному к ноге 5 МК или к нижнему (по схеме) выводу R7 - все отлично: наблюдается ровный и чистенький ШИМ-сигнал, изменяющийся согласно тестовой программе! Однако, стоит подать нагрузку, как осциллограмма начинает прыгать: появляются ШИМ-импульсы, затем ровная линия, затем снова импульсы с тем заполнением, которое должно быть в самом начале программы... Собственно, это наблюдение и позволило сделать вывод о том, что МК перезагружается.
      Естественно, первая мысль - слабый лабораторник (он у меня импульсный, самодельный, где-то на 3А - действительно слабый; но та же петрушка наблюдалась и при попытках питать устройство от трансформаторного ЗУ на 10А). Ну, пригнал машину, снял с нее аккум (100% свежий и не дающий просадок!), запитал от него - однако проблема повторилась... Значит, дело не в питании!.. Пробовал много различных танцев с бубном: отключал внешнюю цепочку сброса R2-C2 (результат - ноль), включал BOD микроконтроллера (стало еще хуже), подвешивал вместо C4 и C6 электролиты большей емкости (не помогло)... Думал, что, возможно, кондеи C4 и C6 разряжаются через R7 - экспериментировал с его сопротивлением (от 100 до 960 Ом), перекидывал его верхний вывод на анод VD1 (чтобы отсечь резистор от фильтрующих C4 и C6) - тщетно... Грешил даже на то, что какие-то проблемы вносит емкость затворов VT2 и VT3 - уменьшал сопротивление R10 и R12, дабы затвор быстрее "разряжался" - безрезультатно...
      Игрался с частотой МК и ШИМ - перебрал частоты ШИМ от 18 до 4687 Гц; пытался запускать нагрузку с разным заполнением ШИМ, от 10 до 40% - как глючило, так и глючит... Т.е., перелопатил, практически, всю схему!
      Удалось заставить устройство нормально работать на лампу, и даже на пару спаралеленных электродвигателей МЭ218 (от "печки") следующим образом: R8 был исключен (вместо него - перемычка), а C7 (изначально - К73-17В всего на 0,47мкФ) был заменен на пару электролитов по 1500мкФ, включенных плюс к плюсу последовательно (для устранения полярности кондеев). Нагрузка стала нормально подключаться, отрабатывать как на повышение, так и на убывание заполнения ШИМ. Двигатели отлично работали как при ступенчатом изменении ШИМ-заполнения, так и при плавном. Единственное, что при попытке подать на двигатели ШИМ с заполнением менее 20%, МК опять начинал дергаться и резетить, а так же резетил при резком отключении движков: если раскрутить их до 100%, а потом снять сигнал, то МК перезагружался; однако, если после 100% плавно понижать обороты где-то до 40%, и лишь потом снимать сигнал, то схема работала нормально. Плюс, очень сильно нагревались электролиты C7...
      Однако, когда принес схему в машину - для отладки непосредственно в "боевых условиях", и подключил мощный двигатель вентилятора, началась старая песня с резетами...
      Сейчас, вроде бы, "осенило" - поменял VD2 на Шоттки 1N5822 - лампочка запустилась на "ура" даже без С7; так же отлично и мягко стартовала спарка из МЭ218 - радостный побежал к машине... Но с "карлсоном" - опять мимо: МК вновь ушел в перезагрузку... Все: я не знаю, что тут делать - каждую деталь уже перелопатил, и кучу вариантов испробовал!!! Но ничего не понятно(( Вот и прошу помочь: может быть, кто-то уже был в такой ситуации, и как-то решил подобную проблему?
      VT2 и VT3 стоят "фирменные", IR-овские (не Китай) - из "Чип и Дипа". ATtiny13 - с Алиэкспресс; чтобы исключить возможность брака конкретной микросхемы, пробовал ставить в схему несколько разных экземпляров МК (из одной посылки). DS18B20 пока еще не подключал (нужно разобраться с ШИМ!). IRF3205 каскадированны для уменьшения нагрева (хотя его и так практически нет), и для дополнительной надежности (чтобы в случае выхода из строя одного транзистора не перегреть машину). Тестовую программу специально написал "китайским стилем", без циклов и т.п. - чтобы она была максимально простой, наглядной и линейной - для уверенности, что не в ней дело.
      Подскажите пожалуйста - откуда эти резеты, и как с ними бороться? Как заставить схему отрабатывать на мощную нагрузку? Заранее благодарю!!!
       
       
      ;*************ТЕСТОВАЯ ПРОГРАММА************* ;============ДИРЕКТИВЫ ТРАНСЛЯТОРУ=========== .device ATtiny13 .include "tn13def.inc" .list ;Обзывательство регистров .def Temp = R16 .cseg .org 0x00 ;=========ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ======== rjmp Begin //Начальный сброс reti //Внешнее прерывание INT0 reti //Изменение состояния любой линии reti //Переполнение T0 reti //Готовность EEPROM reti //Срабатывание компаратора reti //Совпадение в канале A таймера T0 reti //Совпадение в канале B таймера T0 reti //Переполнение сторожевого таймера reti //Завершение преобразования в АЦП ;============МОДУЛЬ ИНИЦИАЛИЗАЦИИ============ Begin: ;-----Инициализация стека ldi Temp, RAMEND out SPL, Temp ;-----Отключение компаратора ldi Temp, 0x80 out ACSR, Temp ;-----Настройка портов ldi Temp, 0b00000111 out DDRB, Temp //PB0 - на вывод ;-----Настройка ШИМ ldi Temp, 0b11000001 out TCCR0A, Temp //Режим - быстрый ШИМ с инверсией ldi Temp, 0b00000010 out TCCR0B, Temp //Делим тактирование таймера на 8 rjmp Start //При старте пропускаем 5-секундную задержку ;===============ТЕСТОВЫЙ ЦИКЛ================ PWM: ldi Temp, 0b00000000 out OCR0A, Temp //ШИМ=0% rcall Delay5sec //Ждем 5 сек ;-----Повышаем скорость Start: ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 255 out OCR0A, Temp //ШИМ=100% rcall Delay2sec ;-----Понижаем скорость ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec rjmp PWM //Возвращаемся, и начинаем с 5 сек "молчания" ;===========ПОДПРОГРАММЫ ЗАДЕРЖКИ============ ;-----Задержка в 2 секунды Delay2sec: ldi R17, 253 ldi R18, 75 ldi R19, 29 L1: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L1 nop ret ;-----Задержка в 5 секунд Delay5sec: ldi R17, 253 ldi R18, 61 ldi R19, 73 L2: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L2 nop ret  

    • By Дмитрий Чуков
      Необходимо составить программу, которая формирует сигнал с частотой 1 кГц и скважностью 4 при помощи таймера. В CodeVision AVR написать программу и после в протеусе проверить, целый день уже бьюсь, не могу разобраться с таймерами. Вроде задача не трудная, если бы увидел, как это должно выглядеть в коде... Как настроить таймер для ATMega8A и решить эту задачу?
    • By Евгений61
      Уважаемые знатоки языка Си. К Вам такой вопрос.
      Имеется функция на языке Си. В этой функции содержится одна статическая переменная. Проблема в том что каждый вызов этой функции отвечает за разный выполняемый алгоритм.
      Что бы было понятнее делаю таймер с задержкой включения в котором сохраняется время для каждого таймера. Вопрос состоит в том как можно сделать, чтобы при вызовах этой функции значения статической переменной были свои для каждого вызова.
      Или только писать две одинаковые функции с разными переменными?
    • By SAYMPR
      Друзья ! Нужна помощь,есть схема бортового устройства в протеусе,так же и программа на С.Не получается  программу связать со схемой.Помогите пожалуйста!
      Протеус принимается только асемблер,а мне нужен С.

    • By ARV
      Вот такая плата была когда-то давно разработана и изготовлена... Но ни разу не включалась, не проверялась и не налаживалась.
      Схема с перечнем сохранилась только на бумаге.
      Схема предназначалась для изучения/освоения микроконтроллера AT90PWM3 и CAN, использование их для управления трехфазным инвертором. 
      На плате установлены:
      микроконтроллер AT90PWM3-16SQ в типовой обвязке с кварцем; внешний CAN-контроллер MCP2510-I/SO; драйвер CAN-шины MCP2551-I/SN; регистр SN74HC597 для ввода 8 дискретных сигналов; 4 оптрона ILD74 для развязки дискретных сигналов; Операционный усилитель AD824AR для аналоговых сигналов, подаваемых на МК; элементы N74AHCT86D для возможности инвертирования выходных сигналов (при помощи перемычек) буфер SN74AC244DWR для умощнения выходных сигналов; преобразователь питания ИРБИС МПА10А (входное напряжение 9...18В); необходимая обвязка, включая восстанавливаемый предохранитель, кварц, защитные диоды на входах и т.п. На плате много контрольных точек, есть технологические перемычки. Схема оттрассирована в расчете на то, что МК формирует 3 двуполярных ШИМ-сигнала (т.е. всего 6 ШИМ-ов для верхних и нижних ключей отдельно)  возможностью индивидуально проинвертировать каждый (т.к. драйверы IGBT могут иметь как прямые, так и инверсные входы). 4 аналоговых сигнала с датчиков тока или напряжения поступают в МК для реализации ОС и защит. Управление ведется по CAN и с помощью 8 дискретных сигналов.
      Больше подробностей вспомнить не могу...
      Плата, как видите, даже не мылась от канифоли - так и пролежала 10 лет... Паялась профессиональнми монтажниками вручную, трассировалась тоже, но за качество, увы, не порчусь головой...
      Думаю, плата может быть хорошей основой для самодельного инвертора или как экспериментальная основа для изучения микроконтроллера, CAN-контроллера и шины, а так же вообще для всяких поделок. 
      Отправлю почтой РФ комплект: 
      Схема - 1 лист А1 эскиз размещения компонентов на плате - 1 лист А4 (немного поврежден, но читаем) перечень компонентов - 2 листа А4 эскиз печатной платы - 1/2 листа А4 плата в сборе дополнительный контролер AT90PWM3B (на плате распаян другой - AT90PWM3) Цена 3000 рублей, доставка отдельно. Бонусом могу добавить дополнительный CAN-контроллер и CAN-драйвер.
×
×
  • Create New...