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

Алгоритмы кода прошивок микросхем процессора ATMEGA16 на Си


tifaso

Рекомендуемые сообщения

Haчни уже читать документацию, а то всё проектируешь по ощущениям.

Я тебя ещё на первых страницах просил: сделай замеры, что сколько потребляет.

78L05 без нагрузки потребляет до 6 мА.

А tiny2313 на 4 МГц в idle – меньше 1 мА. Спрашивается, что даст спящий режим?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

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

Как раз с точностью до наоборот.
Только от просмотра видосиков может возникнуть умозаключение:

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

Таймер же тоже прерыванием считается

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

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Ну таймер не всегда прерывание,это всего лишь счетчик импульсов (внешних или от тактового генератора через предделитель),просто им можно "спровоцировать" прерывание  по совпадению или переполнению

Ссылка на комментарий
Поделиться на другие сайты

Ecли бы @tifaso последовал совету 

В 20.02.2023 в 19:25, colorad сказал:

После изучения цифровых микросхем по справочнику Шило

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

Часто есть ещё схема сравнения, чтобы сравнивать значение счетчика с некоторым нужным нам значением.

Ссылка на комментарий
Поделиться на другие сайты

11 минут назад, ChePay сказал:

Ecли бы @tifaso ...

понимал, что таймер – обыкновенный двоичный счётчик...

К сожалению это не так, на мой взгляд. Он этого не понимает. Не понимает что такое регистр и многое другое из состава МК. А главное - не понимает как все это работает внутри МК. Иначе бы не утверждал, что Ассм тяжелый и непонятный язык. Ему (tifaso) никто в роликах этого не объяснял, не для этого ролики записываются. Куда проще слизнуть чужой, пусть и неграмотный проект, работающий кое-как. Главное в нем понятно, какие переменные изменить в случае чего. А вот изменить под себя алгоритм выполнения этого проекта - уже непосильная задача (ввиду перечисленных выше условий), которая и делает нашего tifaso упрямее сектанта (сектанта легче переубедить).

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Геннадий сказал:

сектанта легче переубедить

Золотые слова!
У нас никак не получается донести до автора темы, что изучение МК происходит в следующем порядке:
транзисторный ключ -> элементы ТТЛ -> триггеры,счётчики,регистры -> микропроцессор,ОЗУ,ПЗУ -> микроконтроллер -> ассемблер -> использование Си для программирования МК
Попытка начать с Си - это через задний проход.

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

Так и изучение электроники нужно тоже поэтапно делать. Именно поэтому @tifaso уже пять лет делает этот проект.

А нужно или повторить готовую уже отлаженную конструкцию. Например, есть же усилитель на трёх микросхемах от Сухова (https://radiostorage.net/5178-skhema-polnogo-usilitelya-zch-na-mikroskhemah-ot-philips-tda1029-tda1524-tda1555q-50-watt.html):
image.png.2a44cea104ec85a67cf50b8d1aab3db9.png
Ставим на один их входов mp3 модуль с радио и всё готово. Питать всё можно от 12 В аккумулятора, как и сейчас.

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

Ссылка на комментарий
Поделиться на другие сайты

Еще столько же он потратит на поиски программных решений для своей конструкции. За это время можно много чего изучить. Вот пример кода прошивки пульта (не совсем оптимизированный по энергопотреблению - слишком много посылок по ИК-каналу на одно нажатие кнопки), если подходить к нему с точки зрения программирования на Ассемблере (судя по оригиналу, автор либо совсем начинающий, либо долго работающий на Си, либо... борец за поли-гендерное равенство, как у них там модно сейчас). А всего то и потребовалось сделать клавиатурную матрицу 4х4 и подойти к алгоритму на Ассемблере.

пульт.rar

Кому не лень, сравните "портянки" мою и авторскую.

avr_do2_v.asm.rar

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, Геннадий сказал:

Еще столько же он потратит на поиски программных решений для своей конструкции. За это время можно много чего изучить. Вот пример кода прошивки пульта (не совсем оптимизированный по энергопотреблению - слишком много посылок по ИК-каналу на одно нажатие кнопки), если подходить к нему с точки зрения программирования на Ассемблере (судя по оригиналу, автор либо совсем начинающий, либо долго работающий на Си, либо... борец за поли-гендерное равенство, как у них там модно сейчас). А всего то и потребовалось сделать клавиатурную матрицу 4х4 и подойти к алгоритму на Ассемблере.

пульт.rar 1 кБ · 0 загрузок

Кому не лень, сравните "портянки" мою и авторскую.

avr_do2_v.asm.rar 1 кБ · 0 загрузок

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

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Ivan3 сказал:

А какой смысл сравнивать...

Если быдло-код выложен на всеобщее пользование, то он не только может критиковаться. Он просто обязан подвергнуться критике, потому как является основополагающим материалом для неокрепших умов типа tifaso, принимающих его как истину в последней инстанции (работает и ладно). Какие потом программы будут написаны такими программистами на знаниях, полученных из роликов и схем типа этой? Пусть быдлокодят европейцы и радуются, что хоть как-то работает. Нам надо быть впереди их. Учитесь, читайте и познавайте, а не тупо копируйте у "буржуев".

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, ДядяВован сказал:

Попытка начать с Си - это через задний проход

поправлю, применительно к МК. Си относится к языкам программирования высокого уровня, ускоряет разработку ПО, и абстрагирован от железа, хотя и допускает включения фрагментов на ассемблере для решения низкоуровневых задач, но тут нужно отличать зёрна от плевел. Любой язык программирования это как инструмент, нужно уметь им пользоваться и понимать для каких задач он подходит.

Ссылка на комментарий
Поделиться на другие сайты

30 минут назад, dolmatovva сказал:

поправлю, применительно к МК. Си относится к языкам программирования высокого уровня, ускоряет разработку ПО, и абстрагирован от железа, хотя и допускает включения фрагментов на ассемблере для решения низкоуровневых задач, но тут нужно отличать зёрна от плевел. Любой язык программирования это как инструмент, нужно уметь им пользоваться и понимать для каких задач он подходит.

Совершенно верно И как говорится лучший инструмент это тот который ты знаешь  

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Ivan3 сказал:

И как говорится лучший инструмент это тот который ты знаешь  

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

12 минут назад, Ivan3 сказал:

Совершенно верно И как говорится лучший инструмент это тот который ты знаешь  

Лучший этот тот, который позволит выполнить поставленную задачу в лучшем виде.

Топором можно гораздо больше дров наколоть, чем ножиком. Но Буратино топором не выстрогать, ножом лучше получится.

6 минут назад, Ivan3 сказал:

Горды́ня — непомерная гордость, заносчивость, высокомерие, эгоизм, нетерпение упрёков и жажда похвалы.

Нисколько. Скорее брезгливость к бездарному. И никакое утверждение "я художник, я так вижу" не является этому (бездарности) оправданием. Это мое мнение. А насчет жажды похвалы... Мне этого не надо, ее и так предостаточно звучало на нашем форуме. Так что "самоутверждение" не подходит, ищите другой повод.:)

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

Взять чип mp3 плейера, чип FM тюнера, микроконтроллер 1 и микроконтроллер 2, и ещё пульт ДУ на микроконтроллере, их сыне, и для коммутации всего этого использовать релейный шкаф, Карл !!!  Да как мы мы можем обсуждать язык программирования для обращения к шкафу ?!

Ссылка на комментарий
Поделиться на другие сайты

45 минут назад, Ivan3 сказал:

 Охаивание других — замаскированное хвастовство

Это не то, за что Вы принимаете. Это последняя попытка обратить внимание tifaso на неправильно выбираемый путь. Если другим способом не удается, то как Вы рекомендуете поступить? Плюнуть на это все, типа "хрен с тобой, живи уродом"? Хотелось помочь человеку, направить в правильное русло (я не призываю отказаться от Си совсем, но в данном случае на Ассме будет лучше). Но он упрям... и Вы тут еще нарисовались, как защитник (не пойму только кого). Уж не Ваша ли схема с того форума? Или Вы ее тоже повторили и рекомендовали?

1 минуту назад, Ivan3 сказал:

...ну и повторюсь  что это личное дело  тифасо . как и что ваять  главное чтоб ему нравилось...

Ну тогда флаг ему в руки, ведро на шею и в путь. Нечего головы людям морочить с вопросами.:)

Ссылка на комментарий
Поделиться на другие сайты

@Ivan3 1. приведите контекст, прежде чем так судить. то, что и как пишете в форуме, касается всех его участников.

2. вы не привели технически аргументированных доводов.

3. тифасо сам обратился сюда за помощью, но если вы хотите быть его психологом, решайте это вне форума.

Ссылка на комментарий
Поделиться на другие сайты

Вот тут вот озвучена здравая мысль:

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

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

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

И если бы @tifaso чётко проговорил, что я не буду читать книги, учить ассемблер. Не хочу просто. Хочу доделать так, как умею, то лично я бы перестал советовать улучшения.

Но вместо этого @tifaso юлит, типа, пробовал импульсные преобразователи, получил от них помехи, значит, это плохо. Попробовал мостовой усилитель от 12 В, не заработало, значит, тоже плохо.

У меня бы не поднялась рука в подобную любительскую конструкцию поставить три микроконтроллера. Уж лучше тогда аппаратно всё сделать. Можно даже не на логических ИМС, а не транзисторах и диодах.
Тот же пульт. Ну есть же красивые качественные пульты от видаков, муз. центров или DVD. Их и в руке держать приятно и удобно, и кнопки все подписаны.

Тем более, что делается для себя. И делается уже несколько лет, почему не сделать хорошо и красиво?

 

 

Ссылка на комментарий
Поделиться на другие сайты

Хорош мужики, уже забыли о чём речь то была:yes:. Завязывайте.

Автор темы мало сведущ в электронике, но взялся делать мастадонта из разнокалиберных частей с тремя микроконтролерами, которые ещё надо умудриться согласовать друг с другом. Лет на ... делом занят будет.

Переубедить вы его не сможете, некоторые сразу поняли и отвалили, всё равно останется кривым и убогим или скорее всего в мусорку отправится раньше.

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, Геннадий сказал:

Прерывание от таймеров не используются ни в пульте, ни в приемнике

А зачем тогда там настройка таймера ?

; NASTAVENI CASOVACU
LDI	REG,0b00000010 	; nastavi čítač na nulovani pri dosazeni porovnavane...
OUT	TCCR0A,REG    	; ...hodnoty (tzv. CTC), OC0 nevyuzit
LDI	REG,0b00000011 	; preddeleni 64
OUT	TCCR0B,REG    	; 
LDI	REG,213      	; nastavi porovnavanou hodnotu
OUT	OCR0A,REG     	; 

LDI	REG,0b00000001	; povoli preruseni OCIE0A
OUT	TIMSK,REG    	; 

 

Ссылка на комментарий
Поделиться на другие сайты

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

IN REG,TCNT0

CPI REG,3		;Prah delky zakmitu / (krбtkйho) pulzu
BRLO ZAKMIT

CPI REG,53		;Prah delky dlouhe mezery / mezery mezi snimky
BRLO NE_KONEC_SNIMKU

 

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...