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

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


tifaso

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

Значит на сайте http://avrprog.blogspot.com/ про регистр TIMSK0  вранье?

Там написано-

Цитата

Регистр TIMSK0: бит TOIE0 разрешает прерывание по переполнению при установке 1

,у нас TIMSK=0b00000001,то есть TOIE0=1

По вашему это не разрешение прерывание от таймера?

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

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

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

не верна! 

 

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

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

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

Вы мой предыдущий пост читали? Да, я высказался несколько косноязычно. Имел ввиду "при дешифрации сигнала" не используется, т.е. не участвует в определении 0/1. Пока идет посылка счетный регистр считывается и сбрасывается до следующей смены уровня сигнала. Таким способом он используется для измерения длительностей импульсов управляясь в ручную и не может достичь результата OCR1A чтобы сброситься и вызвать прерывание. Это возможно только при определении конца посылки, когда пауза между импульсами очень большая. Дальше сильно не вникал, потому как нет смысла заниматься, сами видите. И если уж пошло кропотливое уточнение, то  согласно datasheet на Atmega2313-4313 TIMSK=0b00000001, это есть OCIE0A=1 (прерывание по совпадению).:)

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

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

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

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

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

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

Читал.

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

Не с проста автор пишет что ассемблер тяжелый,пожалуй,он прав на 100 %

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

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

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

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

36 минут назад, bulat943 сказал:

...прерывание все таки есть,а вот в каких случаях оно используется это уже... не важно...

Не с проста автор пишет что ассемблер тяжелый,пожалуй,он прав на 100 %

Очень даже важно. Нельзя подходить к вопросу с точки зрения "есть и ладно, а как работает (и работает ли вообще) - не важно". Вы когда-нибудь схему на TTL-рассыпухе делали? Неужели и там так же, "триггер поставлю, а как он будет работать - не важно". Главное что он есть в схеме.

Насчет сложности. По мне, если честно, проще с Ассемблером разобраться, чем с вами договориться.

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

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

Не вижу смысла с вами спорить,я остаюсь при своем мнении-прерывание по совпадению таймера в приемнике есть! 

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

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

 

Я не писал "есть и ладно",про триггер не заикался даже,не надо мне приписывать всякую чушь

 

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

Поймали! Я уже исправился в оговорке, прерывание по совпадению таймера ЕСТЬ и оно используется когда посылка завершена (отсчитывает период без сигнала передатчика). И добавлю, раз уж Вам так сложен низкоуровневый подход (хотя tifaso об этом просил - разжевать алгоритмы, чтобы повторить на Си), это прерывание не участвует в декодировании посылки, с его помощью автор не различает, что передано 0 или 1. Поэтому активного использования этого прерывания не наблюдается (одноразовый пук). И Вам я ничего не приписывал, а только развил Вашу же мысль "не важно" (хоть эти-то слова Ваши?). В случае с возможной мыслью tifaso, перевести алгоритм приемника на Мегу16, такой подход к прерыванию невозможен. Хотя бы потому, что оба узла (приемник и передатчик) у автора работают исключительно в прерываниях, не используя бесконечный цикл. Попробуйте изобразить такое же безобразие на Си. Послушаем, что скажут заглянувшие сюда гуру Си.

Вот об этом мне и хотелось предупредить tifaso. Но тема, как всегда, съехала на бессмысленные разборки.

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

мне кажется все будет намного проще 

1 попробует перевести на СИ

2 ничего не получится 

3 найдет библиотеку  либо локалку подключит 

4 задача решена

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

вот кстати пример 

локалка  или болван (сленговое ) это  формальная реализация алгоритма  без привязки к регистрам портам 

 

 

 

AVR-LIBRARY-IR_REMOTE_RECV-master.zip

вот пример

AVR200local.pdf

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

допустим есть алгоритм реализованный на x86 соответственно на NEC AVR PIC ты его не запустишь (по понятным причинам) те локально где-то он работает

 

 

 

и тебе надо приложить мозги чтоб заставить это работать на тебя 

те уговорить твой камень совершать такие-же действия 

и как проверку (референс) используешь локальную версию     

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

Причем тут х86? Тут свой алгоритм кодирования в пульте,у вас прием протокола NEC(вроде бы),каким образом ваша "локалка" поможет  и "задача решена"? 

14 минут назад, ДядяВован сказал:

Буду знать.

Из википедии-

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

 

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

допустим мне надо IRDA в АVR

1  придумываю свой велосипед

2 нахожу где это уже реализовано например на PIC и есть код 

3  перевожу этот код под свои нужды 

4 все 

 

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

Плохая идея. 

Лучше найти алгоритм и реализовать его на нужном МК.

Потому что разные архитектуры имеют свои "фишки". Где-то стека мало, где-то много. Разное число регистров, разные системы команд.

У AVR, например, удобно использовать sbrc/sbrs/sbic/sbis.

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

 ChePay

совершенно с вами согласен

это я для примера (чем мне поможет )

 

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

с разным кпд 

вот локалки математики для AVR

avr200.asm avr200b.asm

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

AVR1303: Use and configuration of IR communication module

IRDA конструктор делай что хочешь

 

 

AVR1303.zip doc8104.pdf

Модуль инфракрасной связи (IRCOM) кодирует и декодирует данные
согласно IrDA®  протокол связи для скорости передачи данных до 115,2 Кбит/с.
В этих указаниях по применению описываются основные функции модуля IRCOM в АВР®
с примерами кода для быстрого запуска. также включен интерфейс, написанный на C.
это перевод

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

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

Ну и к чему это в обсуждаемом контексте?

 

Не мог понять что такое локалка,нашел в Википедии что это такое,что то не нравится? 

В принципе алгоритм декодирования протокола nec можно переделать под себя 

 

 

 

 

 

 

 

 

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

8 часов назад, Ivan3 сказал:

локалка  или болван (сленговое ) это  формальная реализация алгоритма  без привязки к регистрам портам

пруфы ? локалка - как раз привязанная реализация к локации, без привязки это канон

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

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

алгоритм декодирования протокола nec

хоть nec, хоть rc5, алгоритмы в библиотеках ардуин лежат тоннами, переделывай не хочу

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

10 часов назад, Ivan3 сказал:

допустим есть алгоритм реализованный на x86 соответственно на NEC...

и тебе надо приложить мозги чтоб заставить это работать на тебя 

те уговорить твой камень совершать такие-же действия

это чё за нах ?

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

11 часов назад, Ivan3 сказал:

В этих указаниях по применению описываются основные функции модуля IRCOM в АВР®

Здрастье, приехали! Кстати, всех с праздником! Начинаются Си-шные костыли, не можешь запустить - поменяй камень на больший. IRCOM это часом не "привилегия" XMEGA? Может сразу на STM32 перевести? И сразу не ниже Cortex4-го. Задачка-то банальная, Мега8 по плечу. А если поднатужиться, то Тиньки 2313 хватит (что у tifaso в приемнике стоит).

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

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

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

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