Jump to content
Chudos

Выбор МК для "небольшого" мотокомпьютера

Recommended Posts

День добрый. 

Поставил для себя задачу создать для своего мотоцикла небольшой компьютер на базе микроконтроллера с выводом информации на дисплей. Кое-какие наработки у меня уже осуществлены и сейчас я стаю перед выбор усовершенствовать свое  устройство(получилось очень громоздкая конструкция которая занимает много места и к тому же 2/3 памяти ардуины я задействовал при этом далеко не все еще впихнул) или начинать с нуля.

Для начало опишу то что у меня уже есть (осуществлено на базе Ардуино уно, пока что без вывода на экран, но скетч под это у меня уже написан) и что я хочу.

Функционал такой:

-вольтметр (есть);

-термометр (есть);

-несколько режимов полуавтоматической смазки цепи (есть как автоматически включающиеся/выключающиеся режимы (считываю сигналы с датчика скорости=>пересчитываю в скорость в зависимости от скорости переключаются режимы, т.е. насос работает либо чаще либо выключается на время либо работает реже), также некоторые режимы включаются вручную с кнопки) - есть, все режимы включаются последовательно;

- расчет средней скорости в пути (частично есть);

- расчет среднего времени поездки (нет);

-расчет расстояния (нет);

- считывание данных с нескольких датчиков разного рода(цифровые и аналоговые) и вывод на дисплей(нет, параллельная задача);

- вывод на дисплей, еще точно не определился с моделью, пока на примере 5110, но не уверен, нужно что-то по размеру как 5110 но хотелось побольше чем 84х84 для вставления качественных картинок).

Собственно вопрос в том по какому пути идти? Оптимизировать задачу на более маленьком ардуино, типа адруино нано (а возможно и на двух) или же начинать с нуля, но тогда встает вопрос о выборе МК (тут я потратив несколько дней пока окончательно запутался) AVR, STM или PIC?

Задача планируется как единичная, но хочется получить относительно компактное устройство. 

П.С. честно читал и искал, но т.к. я "не в теме электроники", мне нужен толчок в нужную сторону

Заранее спасибо.

Edited by Chudos

Share this post


Link to post
Share on other sites

Закапитаню

STM32F103C8T6. 2.5 бакса на али. Влезет все еще и половина останется. По размерам почти как нано

Edited by mail_robot

Share this post


Link to post
Share on other sites

Из опыта: дисплей ищи крупнее, от сотового телефона на расстоянии вытянутой руки при движении (тряске) ничего не разглядеть. И обязательно ЖКИ с подсветкой, OLED не видно на солнце.

Про STM32 сказали правильно, по соотношению цена/возможности - лидер. Я сам хоть и любитель AVR, тоже на STM посматриваю...

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

18 минут назад, mail_robot сказал:

Закапитаню

STM32F103C8T6. 2.5 бакса на али. Влезет все еще и половина останется. По размерам почти как нано

ХМ...

Как раз STM и конкретно эту модель я сейчас и рассматриваю, но у меня есть несколько но:

-с ходу пока не понял что вообще нужно для работы с МК (программатор, cube и еще что-то);

-после ардуины архитектура пугает (все эти регистры и тактирование и т.п.);

-литература на русском и примеры/форумы.

Но я так понимаю это все мои предрассудки

7 минут назад, oldmao сказал:

Из опыта: дисплей ищи крупнее, от сотового телефона на расстоянии вытянутой руки при движении (тряске) ничего не разглядеть. И обязательно ЖКИ с подсветкой, OLED не видно на солнце.

Про STM32 сказали правильно, по соотношению цена/возможности - лидер. Я сам хоть и любитель AVR, тоже на STM посматриваю...

А что можно рассматривать в качестве дисплея? Опять же нужна компактность (это не машина места не много) но при этом четкость данных жизненна необходима 

Кстати я свой телефон использую как навигатор и вроде ничего, правда это 5 дюймов (это что касается размера и тряски)

Edited by Chudos

Share this post


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

обязательно ЖКИ с подсветкой, OLED не видно на солнце.

На самом деле все наоборот.

 Если использовать дисплей с диагональю 5 и более дюймов (разрешение скорее всего будет 800х480) имеет смысл взять арм с аппаратным модулем для работы с дисплеем. И вам не прийдеться использовать переходные контроллеры , типа SSD1963

Edited by andryxa

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

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

Подробнее...

дисплей однозначно OLED. Даже мелкий будет читаться лучше TFT или LCD

а по поводу сложностей с СТМ - все это как в поговорке - у страха глаза велики. Та же ардуина, не сложнее. Осваивается за неделю, после общения с любым другим контроллером, доказано уже не раз. Для работы нужен только STLink v2, CubeMX и Keil. Все качается с официальных сайтов.

Share this post


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

дисплей однозначно OLED. Даже мелкий будет читаться лучше TFT или LCD

а по поводу сложностей с СТМ - все это как в поговорке - у страха глаза велики. Та же ардуина, не сложнее. Осваивается за неделю, после общения с любым другим контроллером, доказано уже не раз. Для работы нужен только STLink v2, CubeMX и Keil. Все качается с официальных сайтов.

Благодарю за разъяснения, буду изучать информацию

 

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

 Если использовать дисплей с диагональю 5 и более дюймов (разрешение скорее всего будет 800х480) имеет смысл взять арм с аппаратным модулем для работы с дисплеем. И вам не прийдеться использовать переходные контроллеры , типа SSD1963

А можно чуть-чуть по подробней про модули. Дисплей ориентировочно планирую 2 дюйма, даже если вся инфа не будет читаться и окажется что ее слишком много (тут надо подумать над размещением и оформлением), буду планировать разделение на основную и дополнительную и "верстку страниц" соответственно 

Edited by Chudos

Share this post


Link to post
Share on other sites

Для 2 дюймового дисплея не нужно ни каких модулей, и подойдет абсолютно любой контроллер.

Share this post


Link to post
Share on other sites

ну не то чтобы абсолютно... все будет зависеть в первую очередь от обьема памяти под знакогенератор. А это обычно с парой шрифтов и набором символов тянет на 15-20 кило сразу. Ну и для растрового контроллера важно иметь SPI с DMA, иначе все будет дико тормознуто. Можно конечно всякими извращенными методами и скорость оптимизировать, но зачем? Есть же STM

Есть вариант конечно применить дисплей со встроенным HMI через UART. Тогда в принципе тип контроллера не особо важен, но будет вопрос цены

Edited by mail_robot

Share this post


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

...тип контроллера не особо важен, но будет вопрос цены

  • Можно ту же Ардуину разбомбить. Меги328 "хватит за глаза и ещё больше половины останется". Сколько СТМ32 в мотик не пихай - Хондой он не станет.:)
  •  

Share this post


Link to post
Share on other sites

Для этих задач хватит ардуины. Просто разберитесь почему у вас отожралось 2/3 памяти. Скорей всего подтянулась библиотека арифметики с плавающей запятой, потому что вы используете где-то умножение вещественных чисел, либо функцию sprintf которая может а собой потянуть всякой фигни. Постарайтесь не использовать вещественные числа вообще. Для вашей задачи всё решается на целых с фиксированной запятой.

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

Нокиевский дисплей и правда маловат. ОЧЕНЬ маловат для условий езды на мотоцикле - прочитать с него вы сможете только стоя. Нужен дисплей по меньшей мере не меньше штатного спидометра!

STM контроллеры хоть и дешевле, но мороки с их программированием в 10 раз больше. И документация фрагментирована к ней привыкать надо. Чтобы иметь комплект документации, понадобится найти документацию на семейство, конкретное ядро и периферию конкретного чипа.

Share this post


Link to post
Share on other sites
10 часов назад, Геннадий сказал:
  • Можно ту же Ардуину разбомбить. Меги328 "хватит за глаза и ещё больше половины останется". Сколько СТМ32 в мотик не пихай - Хондой он не станет.:)
  •  

Про Хонду улыбнуло:D

9 часов назад, Alexeyslav сказал:

Для этих задач хватит ардуины. Просто разберитесь почему у вас отожралось 2/3 памяти. Скорей всего подтянулась библиотека арифметики с плавающей запятой, потому что вы используете где-то умножение вещественных чисел, либо функцию sprintf которая может а собой потянуть всякой фигни. Постарайтесь не использовать вещественные числа вообще. Для вашей задачи всё решается на целых с фиксированной запятой.

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

Нокиевский дисплей и правда маловат. ОЧЕНЬ маловат для условий езды на мотоцикле - прочитать с него вы сможете только стоя. Нужен дисплей по меньшей мере не меньше штатного спидометра!

STM контроллеры хоть и дешевле, но мороки с их программированием в 10 раз больше. И документация фрагментирована к ней привыкать надо. Чтобы иметь комплект документации, понадобится найти документацию на семейство, конкретное ядро и периферию конкретного чипа.

Отчасти я понимаю почему памяти так много использовано. Это, как вы сказали, и математика (вычисление всех параметров для всех функций/устройств, кстати это уже около 20-25%)+оформление дисплея картинками (сейчас уже не помню сколько, но явно за 50%)+кое-что чего сейчас еще нету (думаю там будет мелочь).

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

Собственно я осознаю, что любой МК (не важно STM это или AVR или еще что) будет сложней для меня в освоении, и все-равно готов идти на этот шаг, поскольку у меня предчувствие, что ардуины может не хватить для моих хотелок. Также на сколько я понял ардуина не поддерживает многозадачность, и хоть меня уверели, что в моем проекте её нет, все же мне кажется она есть (опять же предрассудки и незнание).

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

Share this post


Link to post
Share on other sites

Для картинок и других тяжёлых ресурсов можно использовать внешнюю SPI-флешку, не засоряя программную часть.

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

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

Edited by Alexeyslav

Share this post


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

Для картинок и других тяжёлых ресурсов можно использовать внешнюю SPI-флешку, не засоряя программную часть.

Надо над этим подумать...

33 минуты назад, Alexeyslav сказал:

Видеть информацию на дисплее это одно, а вы пробовали засечь сколько времени у вас занимает считывание информации? 

А зачем? Понятно, что это вопрос безопасности. Будем считать, что я на это трачу один взгляд (считай одну секунду), и вот эту секунду, на которую я отвлекаюсь я уже знаю что произойдет на дороге (т.к. заранее просчитываю ситуацию).

24 минуты назад, Alexeyslav сказал:

Часто ли вы смотрите на часы в процессе езды? Часто ли вы будете смотреть на дисплей БК? Насколько удобно расположена на нём информация?

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

Вообщем не стоит лезть в эти дебри, я понял, что вы советуете экран побольше чем 2 дюйма, но я пока не уверен в необходимости этого ( в том числе и по причине немногочисленности мест, где можно разместить "пульт с дисплеем" и самое главное, чтобы эти места были удобны).  

Share this post


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

STM контроллеры хоть и дешевле, но мороки с их программированием в 10 раз больше

рассуждаете о вкусе устриц?

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

Share this post


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

Вот такой дисплей возможно подойдет под вашу задачу http://ru.aliexpress.com/item/2-4-TFT-320-x-240-resistive-touch-screen-display-Nextion-2-4-UART-HMI-Smart/32445344129.html

Возможно, только он же "кликабельный" это никак не скажется на том что он и дождь и в солнце будет под открытым небом? 

Share this post


Link to post
Share on other sites

Все зависит от герметичности корпуса, дисплей тоже при попадании влаги прикажет долго жить. По поводу модуля некстион, диспплей стоит 3 доллара, модуль 13 а практической выгоды от него никакой.

Share this post


Link to post
Share on other sites

Для начала, определитесь, что будете выводить на дисплей. Вам может 16х2 дисплея хватит за глаза. А может вообще 7-ми сегментных индикаторов.
 

Share this post


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

Для начала, определитесь, что будете выводить на дисплей. Вам может 16х2 дисплея хватит за глаза. А может вообще 7-ми сегментных индикаторов.
 

Я уже пробовал 20х4 - грамоздко и не очень информативно, да и спалил я уже его ))) 

На дисплей будет выводится: название режима; температура воздуха; вольтметр.

Остальное не так важно, возможно будет возможно нет (при чем, эта информация второстепенная и может выводится "как-бы на 2-й странице" по нажатию кнопки) : средняя скорость за поездку, время в пути, расстояние.

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

Собственно, подумав, пришел к выводу что дисплей должен быть не больше чем пачка сигарет, мне меньше чем 84х84 (но много тоже особо не нужно), скорей всего монохром-мне этого вполне хватит.

Edited by Chudos

Share this post


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

По поводу модуля некстион, диспплей стоит 3 доллара, модуль 13 а практической выгоды от него никакой

Так уж и никакой? Во что обходится программисту обслуживание матричного дисплея 320х240 надеюсь в курсе?

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

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

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

Несерьезно все это

Share this post


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

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

Несерьезно все это

Все - возможно и не нужны, об этом я уже писал.

А насчет того, что мне нужно и отчего я получаю удовольствие, я вам так скажу (своими словами я никого не хочу обидеть, просто смотрю на все это со своей колокольни): 

судя по акценту сообщений многие имеют как минимум понимание о том что есть и чего нет на мотоциклах в общем и в конкретной модели соответственно, и чего хочу я. Я спросил совета - мне дали несколько разнонаправленных ответов.  Меня спросили/задали наводящий вопрос (как я понимаю для того чтобы в зависимости от ответа дать тот или иной совет)- я ответил, вы выразили свое мнение о несерьезности всего этого - ок, я принял к сведению.

 

Вообщем, суть темы постепенно сходить на нет, и я благодарю всех кто мне помог советом. Делать свое "устройство" (а точнее доводить его до ума) я буду хотя бы по нескольким причинам: кое-что из того что я перечислил сильно облегчит мне жизнь в дороге; такая вещь стоит немалых денег(купить такую вещь я не могу себе позволить); ну и самое банальное - самолюбие надо свое потешить.

В ближайшее время взвешу все за и против смены адруины на стм32 и продолжу работу.

Большое всем спасибо :-)

 

 

Share this post


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

Во что обходится программисту обслуживание матричного дисплея 320х240 надеюсь в курсе?

В курсе, и даже статью написал на эту тему много лет назад http://phreakerclub.com/464 нет там ничего сложного, а будут трудности, поможем молодежи.

Share this post


Link to post
Share on other sites

Был у меня скутер, сломался датчик уровня топлива. Решил поставить самодельный, заодно и температуры головки цилиндра. Самыми эргономичными (видно всегда боковым зрением) оказались светодиодные линейки по 5 светодиодов. Правда, яркость пришлось сделать регулируемую, ночью по глазам чтобы не били. Уровень топлива - четыре светодиода зелёные, нижний уровень красный (индикация точкой, т.е горит только 1 светодиод из пяти), температура - три зелёных, жёлтый и красный (индикация "градусником"). То есть пока на приборке всё горит зелёным - волноваться и отвлекаться нечего. 

Share this post


Link to post
Share on other sites

Кстати, моё мнение про ОЛЕД основано на том, что у жены телефон-раскладушка, наружный дисплей ОЛЕД. Так вот на солнце его вообще не видно. А вот древняя Моторола с ЖКИ видна всегда, ночью - с подсветкой.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. 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 n_angelo
      Привет, знатоки. Написал свою первую программу для контроллера STM8L152C6T6 (STM8L-Discovery). Это, собственно, моя первая программа для контроллеров вообще. Я многого не знаю и не понимаю. Возможно ваш ответ на мой вопрос будет банален.
      Используемая периферия: DAC, DMA, TIM4, CLK, GPIO
      Задача у программы такая:
      В EEPROM зашит один период синусоиды с дискретизацией 44100Гц. Период занимает ровно 101 байт, что по сути должно быть равно 2,29мс (1/44100*101). В коде программы только конфигурация периферии, одно прерывание на кнопке и пустой бесконечный цикл, который ничего не делает. Всю работу выполняет таймер, который настроен выдавать запрос к DMA на каждые 1/44100 (ядро тактируется 2мГц, таймер считает до 45). В свою очередь DMA забирает из EEPROM по одному байту на каждый запрос от таймера и передаёт его в DAC. Далее DAC выводит бесконечную синусоиду на ногу PF0. Прерывание на кнопке запускает весь этот механизм и зажигает светодиод.
      Проблема:
      Измеряя ногу PF0 осциллографом было замечено, что период синусоиды занимает около ≈4мс. Фото под катом.
      Меня это расстроило. Экспериментально выяснилось, что стоит только вписать в бесконечный цикл какую-нибудь проверку, например, [если значение текущего байта синусоиды = 0xFF, то зажечь светодиод, если 0x00, то потушить], то осциллограф показывает правильный тайминг в 2(с копейками)мс. В принципе в теле цикла может быть что угодно, кроме пустоты, и тайминг налаживается.
      Я не могу отдебажить дизассемблер, т.к. его не знаю. Это у меня в планах. Но я очень хочу понять, что происходит и почему пустой цикл рушит тайминг.
      Спасибо.
       
       
       
       
    • By n_angelo
      Привет. Хочу узнать ваше мнение. Я новичок в embedded. Можно сказать, что пришел с веба. Малость Python, JS, C. Меня, конечно, предупреждали начать с AVR, но я уверенный в себе решил сразу залезть на STM32. Вынашивая идею для проекта, параллельно курив Reference Manual и Data Sheet по STM32, я понял что его будет слишком жирно для проекта. Я перескочил на STM8L. И тут меня начал огорчать мир embedded. При переходе между stm8 и stm32 нужно менять IDE (TrueStudio на STVD). Во избежание таких курьёзов я пересаживаюсь на IAR. В процессе подключения родной библиотеки от ST, понимаю что библиотека от IAR для того же самого STM8L152C6T6 дико отличается (макросы, структуры). Привет веб-разработка. Как такое могло произойти, что под один и тот же контроллер ST даёт одну библиотеку, а IAR другую. И нигде в уроках тебя не предупредят об этом. Ну, ребят, у меня всего одна жизнь. Вы уже договоритесь там между собой? Придите к единому стандарту. Или они так решили новичков завендерлочить? Моё мнение (не претендует на правильное): пробираясь сквозь тернии популярной архитектуры ARM, инфраструктуры, инструментария, забываешь про бизнес-логику устройств. А еще просто пропасть между "я ничего не понимаю" и "господи, я зажег светодиод". Речь не о копипастерах с уроков, а действительно понимая что ты делаешь, в каком регистре, что меняешь. Это путь в 2000 (а то и больше) страниц на английском перечитанных по несколько раз, чтобы отоложилось. И в конце тебя ждут разные версии одной и той же библиотки в разных IDE. И сидишь вдупляешь... ну почему... я же в правильный регистр кладу правильную маску... ох, наболело. Такое ощущение что не для людей это всё делали, не для людей.
      Ваше мнение?
    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

  • Сообщения

    • Всем доброго времени суток! Я новичок тут! Что можете сказать вот про такую схему, только лампы стоят 6н6п. Анодное 275, в верхних катодах 220 Ом, нижних 100 Ом. Нижние сетки 100 кОм. Сигнал сразу на сетку. Работает на наушники 250 Ом.
    • Здравствуйте уважаемые форумчане! Мне неспешно,на заказ собирают ламповый SE усилитель на прямонакальных триодах 6с4с и 6э5п(драйвер) Выходные трансформаторы мотают на заказ на хорошем железе, силовик тоже (торроидальный) вы знаете не по наслышке, что прямонакалы 6с4с "хорошо" фонят и чтобы устранить этот недостаток накал ламп советуют выпрямлять постоянкой! Но уже двое человек мне сказали что в этом случае можно "убить" звук, что якобы пропадёт динамика(детализация) и звучание будет в большей степени транзисторным! Правда ли это на самом деле?!!! 2. Если накал ламп выпрямить переменкой как тогда избавиться от фона? Прошу откликнуться знатоков, которые собирали однотактники на этих лампах(6с4с) как правильно поступить? Схему прилагаю)
    • Возможно прога не учитывает что например при 220В большинство атх бп работают в половину от макс скважности -поэтому и число витков меньше  Если сердечник немного больше,то можно взять число витков как в оригинале,40 витков на входе А вот скака витков на выходе,ещё раз подумать какой нужен запас по скважности и по снижению напряжения в сети
    • Верно.   https://vk.com/video182375012_456239021
    • Это и так два паяльника, только конструктивно объединенные в один инструмент.
    • Василичь, - то, что на верхнем фото подписано "Керамика в ОС" (не знаю, что это значит) - это высококачественная пленка от EPCOS. Тип диэлектрика не помню.
    • в смысле симметрии половинок?  ну да есть же оптимальное сопротивление нагрузки при данном внутреннем сопротивлении лампы и катодном резисторе, оно обеспечивает максимальную симметрию половинок. Скажем для 6н3п это 1300 ом при 240 ом катодного резистора. Вы об этом?  
×
×
  • Create New...