Програмирование pic на СИ.

Поклонники продукции Microchip Technology Inc тусуются тут.
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

Объясню - мы говорили про РТОС - точнее реализацию NCO в РТОС на ПИК10.
Причем здесь NCO без РТОС в PIC16F18426 я не понимаю .
везде где есть CIP - делай что хочешь. Но без РТОС. Как минимум не на ПИК32 - на этих примитивную инкарнацию РТОС можно сделать
Я полностью согласен с концепцией - сделали - уснули - проснулись и перезагрузились - и по кругу.
Имеет право быть.
Только это частный случай практической реализации.
В стандартном main.c без суперлупа удачи не будет.
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение veso74 »

Да. PIC10 мой любимой. Только практической реализации.

Код: Выделить всё

// PIC10F322
//                  _____
// ICSPDAT/PIN_A0 -|  ^  |- PIN_A3/MCLR
//            VSS -|     |- VDD
// ICSPCLK/PIN_A1 -|_____|- PIN_A2

// clock = 16000000
//-------------------------------------------------------------------------------------------------------
// frequency = NCO_clock_frequency * increment_value / 2^21
// increment_value = frequency * 2^21 / NCO_clock_frequency

//  38000 Hz -> 4980
//  50000 Hz -> 7323
// 100000 Hz -> 14646
// 200000 Hz -> 29292
Да, никогда не использовал RTOS. Только попробовал на PIC и STM32. Шучу, что все, что можно сделать с RTOS, можно сделать и без RTOS.
Последний раз редактировалось veso74 Вт мар 17, 2026 11:01:57, всего редактировалось 1 раз.
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

[uquote="veso74",url="/forum/viewtopic.php?p=4798560#p4798560"]Да. PIC10 мой любимой. Только практической реализации.

Код: Выделить всё

// PIC10F322
//                  _____
// ICSPDAT/PIN_A0 -|  ^  |- PIN_A3/MCLR
//            VSS -|     |- VDD
// ICSPCLK/PIN_A1 -|_____|- PIN_A2

internal = 16000000
//----------
// frequency = NCO_clock_frequency * increment_value / 2^21
// increment_value = frequency * 2^21 / NCO_clock_frequency

//  38000 Hz -> 4980
//  50000 Hz -> 7323
// 100000 Hz -> 14646
// 200000 Hz -> 29292
Да, никогда не использую RTOS. Шучу, что все, что можно сделать с TROS, можно сделать и без RTOS.[/uquote]
Да нельзя использовать РТОС на Р10 - и здесь я не шучу. Никто и не думал делать такое, кроме КРАМПа :)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798555#p4798555"]Объясню - мы говорили про РТОС - точнее реализацию NCO в РТОС на ПИК10.[/uquote]
Опять ты лжешь.
Разговор о РТОС вообще никак не связан с NCO. Он даже не связан с твоими провалами с генерацией синуса.

Добавлено after 1 minute 2 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4798562#p4798562"]Да нельзя использовать РТОС на Р10 - и здесь я не шучу. Никто и не думал делать такое, кроме КРАМПа :)[/uquote]
Напиши это Вите Тимофееву, а не мне. Он тебя засмеет.
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение veso74 »

E. И мой blink_x2_rtos на PIC12F508 было своего рода мазохизм :).
Но работает. Flash: 135, RAM: 23
... РТОС на Р10 ...
Это не определяет направление деятельности. Если получилось, почему бы и нет? Если не получилось - попробуем в другой раз, шанс еще есть ... Если, конечно, не получится совсем -> меняем тип/вид МК, и там все ОК :).
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

[uquote="ARV",url="/forum/viewtopic.php?p=4798551#p4798551"]добавлю: в сущности, всякие вторичные-первичные часы с механическим приводом могут работать по тому же принципу без суперлупа в main.
первичные часы: микросхема RTC генерирует меандр односекундный, который подается на сброс МК. после сброса МК считывает RTC, выдает сигнал на вторичные и отключается навсегда, до сброса.
вторичные часы: на сброс приходит сигнал от первичных, далее аналогично.

пример, конечно, упрощенный, ведь маловероятно стечение множества условий... типа отсутствия на всех часах электронной индикации...[/uquote]
Да можно делать как угодно, можно писать на Си разными способами, применять любые алгоритмы - т. е. решать задачу разными способами, можно и форматировать по разному код.
Вопрос не в этом.
Вопрос в том что КРАМ поднял холивар про суперлуп в РТОС - и привёл какую-то глупую ссылку на реализацию РТОС на Р10 :)
Ещё раз - если это будет FREERTOS - там всегда будет суперлуп.
Если будет Зефир - суперлупа может и не быть - там концепция потока, у остальных РТОС - концепция системного таймера.
У Зефира планировщик управляет потоками без таймера - там концепция состоит в том что поток может быть в состоянии готов (ready) - и он будет исполняться по очереди в порядке приоритета, выполняемый поток (runnable), и не выполняемый поток (non- runnable). И планировщик банкует всем этим. У остальных РТОС ВСЕГДА вызывается таймер системный.
Всё.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение ARV »

есть еще наивные люди, которые данную тему воспринимают всерьёз :)))
igorg1 писал(а):и привёл какую-то глупую ссылку на реализацию РТОС на Р10
в сущности, OSA не RTOS, и даже близко не. Но как многозадачная кооперативная - вполне имеет право на жизнь. Однако, имхо, реализована она таким способом, что я плюнул на неё давно и бесповоротно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение veso74 »

МК не станет "двухядерным"/"многоядерным". Но... избавит конструктора "головной боли", связанной с необходимостью самостоятельно синхронно рассчитывать время выполнения действий (ценой создания дополнительных беспорядок и проблем :) ). Отказался из идеи еще при тесты.
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

Ещё раз - у Зефира нет понятия СТЕКа - поток отработал и все его данные с концами :) - надо оставить данные - есть мутексы и семафоры :)
У остальных РТОС надо создавать каждой задаче свою кучу (heap)
Чтобы не лопатить тонны станиц технической литературы - у нордика есть образовательная программа про Зефир - желательно иметь их отладочную плату - чтобы реально смотреть как всё происходит - https://academy.nordicsemi.com - там Зефир очень хорошо расписан.
Последний раз редактировалось igorg1 Вт мар 17, 2026 11:39:51, всего редактировалось 1 раз.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="ARV",url="/forum/viewtopic.php?p=4798568#p4798568"]в сущности, OSA не RTOS, и даже близко не. Но как многозадачная кооперативная - вполне имеет право на жизнь.[/uquote]
Роман, а давайте вы не будете нести пургу?
РТОС бывает вытесняющая и кооперативная. OSA - это кооперативная РТОС.
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4798576#p4798576"][uquote="ARV",url="/forum/viewtopic.php?p=4798568#p4798568"]в сущности, OSA не RTOS, и даже близко не. Но как многозадачная кооперативная - вполне имеет право на жизнь.[/uquote]
Роман, а давайте вы не будете нести пургу?
РТОС бывает вытесняющая и кооперативная. OSA - это кооперативная РТОС.[/uquote]
Пример кооперативной РТОС в студию. Только не бред про 12-ти битный камень с 7-ю цветными светодиодами:)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798567#p4798567"]И планировщик банкует всем этим. У остальных РТОС ВСЕГДА вызывается таймер системный.[/uquote]В любой вытесняющей РТОС есть системный тик и он вызывает планировщик, но планировщик может вызвать так же любое событие в системе. Любое приоритеное событие может заставить планировщик отработать и изменить очередь задач в свою пользу. В отсутствии таких событий планировщик вызывается интервалом систика и происходит переключение контекста на следующую в очереди задачу.
Динамическое выделение памяти совершенно необязательно. В системе может быть вполне определенное количество задач с вполне определенным размером контекста.
Твои чириканья про FreeRTOS и реклама Зефира идут дремучим лесом. Мне они нах не нужны, например. Со всем их богатейшим функционалом.

Добавлено after 1 minute 32 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4798577#p4798577"]Пример кооперативной РТОС в студию. Только не бред про 12-ти битный камень с 7-ю цветными светодиодами[/uquote]
Ты попросил со светодиодами - я предоставил.
Весь сайт посвящен кооперативной РТОС OSA. (Сорри, там еще есть вытесняющая TNKernel)
Читаешь - вникаешь.
Или ты не в курсе что такое кооперативная РТОС?
Могу научить. Дорого.
:music:
https://www.gamma.spb.ru/images/pdf/pag ... 8/RTOS.pdf
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

Слушай, КРАМчик - не неси пургу по поводу что "В любой вытесняющей РТОС есть системный тик и он вызывает планировщик, но планировщик может вызвать так же любое событие в системе. Любое приоритеное событие может заставить планировщик отработать и изменить очередь задач в свою пользу. В отсутствии таких событий планировщик вызывается интервалом систика и происходит переключение контекста на следующую в очереди задачу."
Это твоё мнение - Зефир работает по другому.
Прочитай про Зефир - желательно на уютном диванчике.
По поводу кода кооперативной РТОС с твоего сайта - покажи как ты сделаешь NCO с морганием светодиодами на Р10.
Народ ждёт.

Добавлено after 33 seconds:
Нет у Зефира системного тика от слова совсем.

Добавлено after 7 minutes 20 seconds:
Кому ты там мне сказал написать???
То что автор сайта пронёс ерунду, не снявшись с ручника - смотри:)
Изображение
И не ссылайся не на авторитетов.
Просто копипастер, который такое пропустил

Добавлено after 2 minutes 20 seconds:
Он аппелирует на 4 кнопки на Р10 - там всего 4 ПИНа на Р10:) - плюс ещё ПИНЫ ДЛЯ ШИМа и 7-ми цветного светодиода:)
Сам-то понимаешь, в какую лужу сел, давая ссылки на фейк???

Добавлено after 2 minutes 57 seconds:
Поясню что имел ввиду - надавлю сразу на 2 и более кнопок - что будет?

Добавлено after 11 minutes 50 seconds:
Сам-то понимаешь что там бред нарисован? Кнопки (пины на вход) сидят на выходе ШИМа???
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798586#p4798586"]Нет у Зефира системного тика от слова совсем.[/uquote]
Мне похеру что есть у Зефира.
[uquote="igorg1",url="/forum/viewtopic.php?p=4798586#p4798586"]То что автор сайта пронёс ерунду, не снявшись с ручника - смотри[/uquote]
Мне нечего смотреть. Ты есть клоун по сравнению с Тимофеевым. :tea:
[uquote="igorg1",url="/forum/viewtopic.php?p=4798586#p4798586"]Он аппелирует на 4 кнопки на Р10 - там всего 4 ПИНа на Р10:) - плюс ещё ПИНЫ ДЛЯ ШИМа и 7-ми цветного светодиода:)
Сам-то понимаешь, в какую лужу сел, давая ссылки на фейк?[/uquote]
Ты не просто безграмотный клоун. Ты тупо дебил, да простят меня модераторы.
Тимофеев применил КЛАССИЧЕСКИЙ способ чтения кнопок с коммутацией на GP3
Если ты не в теме как это делается, открой Кукбук Микрочипа на тему 8-битников.
И обтекай, обтекай, обтекай... :music:
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

Слышь, обтекающий ты наш - а GP0-GP2 что делают????
12-ти битный камень - интересно :)
Заткнись и молчи через свой хоботок
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798592#p4798592"]GP0-GP2 что делают????[/uquote]Реализуют двунаправленность. Когда выводится ноль - читают вход. Если там единица - кнопка нажата.
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4798594#p4798594"][uquote="igorg1",url="/forum/viewtopic.php?p=4798592#p4798592"]GP0-GP2 что делают????[/uquote]Реализуют двунаправленность. Когда выводится ноль - читают вход. Если там единица - кнопка нажата.[/uquote]
А как быть с ШИМом? Там так написано:)
И что с 12-ти битным камнем и 7-ми цветным светодиодом?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798596#p4798596"]А как быть с ШИМом?[/uquote]
Никак. Он просто работает и в момент нажатия кнопки на время ее нажатия блокируется включенным один цвет.
Это же переключение режимов светильника.
[uquote="igorg1",url="/forum/viewtopic.php?p=4798596#p4798596"]И что с 12-ти битным камнем и 7-ми цветным светодиодом?[/uquote]
Какая связь между длиной инструкций МК и количеством цветов, которые получаются посредством RGB?
Последний раз редактировалось КРАМ Вт мар 17, 2026 12:53:21, всего редактировалось 1 раз.
igorg1
Прорезались зубы
Сообщения: 200
Зарегистрирован: Сб дек 24, 2011 10:17:24

Re: Програмирование pic на СИ.

Сообщение igorg1 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4798597#p4798597"][uquote="igorg1",url="/forum/viewtopic.php?p=4798596#p4798596"]А как быть с ШИМом?[/uquote]
Никак. Он просто работает и в момент нажатия кнопки на время ее нажатия блокируется включенным один цвет.
Это же переключение режимов светильника.
[uquote="igorg1",url="/forum/viewtopic.php?p=4798596#p4798596"]И что с 12-ти битным камнем и 7-ми цветным светодиодом?[/uquote]
Какая связь между адресной шиной МК и количеством цветов, которые получаются посредством RGB?[/uquote]
Нажатие на какую кнопку? Или на 2 сразу? GP3 - кнопка- не привязана ни к чему. И ты прекрасно знаешь - чтобы прочитать что-то на выходе - надо пин сделать входом - т. е. из выхода сделать входом :) - что-то такое я в коде не увидел:)
И там написано - что камень - 12-ти битный. И светодиод - 7-ми цветный :)
Разницу понимаешь?

Добавлено after 2 minutes 45 seconds:
У меня есть PIC10F222 - хочешь воплощу в жизнь этот бред??? работать не будет однозначно :)
А вот если сделаю - и не будет работать - сразу намажь вазелином - ну ты знаешь что :)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Програмирование pic на СИ.

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798600#p4798600"]Нажатие на какую кнопку? Или на 2 сразу?[/uquote]
Как угодно. Даже на все четыре сразу.
[uquote="igorg1",url="/forum/viewtopic.php?p=4798600#p4798600"]GP3 - кнопка- не привязана ни к чему.[/uquote]
Зачем ее привязывать? Задача прочесть четыре кнопки. Три читаются динамически в момент нуля на линии свтодиодов, четвертая статически в любое время.
[uquote="igorg1",url="/forum/viewtopic.php?p=4798600#p4798600"]И ты прекрасно знаешь - чтобы прочитать что-то на выходе - надо пин сделать входом - т. е. из выхода сделать входом :) - что-то такое я в коде не увидел[/uquote]
Надо бы с тебя денег взять за обучение... :music:
Открой даташит на любой PIC c 12 или 14 битными инструкциями и ты обнаружишь, что TRIS не отключает чтение порта. Он отключает ТОЛЬКО ВЫХОД. Поэтому читать можно состояние пина в любой момент. У этих МК нет защелки входа.
[uquote="igorg1",url="/forum/viewtopic.php?p=4798600#p4798600"]И там написано - что камень - 12-ти битный. И светодиод - 7-ми цветный :)
Разницу понимаешь?[/uquote]
Камень действительно 12 битный. Только это размер инструкций, а не шины данных.
Стандартное выражение для этой архитектуры, которую ввел сам Микрочип.
Есть 12, 14 и 16 битные ядра у 8-битных PIC.
Светодиод семицветный поскольку яркость цветов в данном случае не регулируют. RGB светодиод имеет семь основных цветов. Что не так?
Ответить

Вернуться в «PIC»