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

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4253
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

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

Сообщение Transformer-V »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797870#p4797870"]Найдите хоть одну разницу. Одинаковое число строк и полностью одинаковые инструкции.[/uquote]
Одинаковое, потому что ты не отличаешь "статику" от "динамики", это все равно что компилятору указать =123+456;

давай так:

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

while(i)
{
array[n++]=(val+=10);
i--;
}
или так:

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

while(i)
{
*ptr++=(val+=10);
i--;
}
Реклама
Rapra
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Пн фев 16, 2026 17:30:02

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

Сообщение Rapra »

Нет, давайте вы сначала исправите свою грубейшую ошибку:

[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797868#p4797868"]while(*PtrArray)[/uquote]
- здесь грубейшая ошибка. Если в середине массива попадется значение 0 (например array[] = {10, 30, 5, 0, 7, 20, 15, 100} ), цикл прервется еще до конца массива. И наоборот, если в массиве НЕТ значения 0 ( например array[] = {70, 50, 34, 60, 10, 25} ), цикл не прервется никогда и указатель выйдет за границы массива.

В общем, прежде чем писать, все-таки используйте отладку с printf, а то ерунда у вас получается. Наберитесь вначале опыта.

Добавлено after 4 minutes 51 second:
[uquote="igorg1",url="/forum/viewtopic.php?p=4797873#p4797873"]А конструкция if подразумевает, что все конструкции с if будут выполнены.
А КРАМ бъётся за каждый машинный цикл :)[/uquote]
У КРАМА - классический "академический" пример как по учебнику - min = 0, max = 0xfff... Поэтому и требуется раздельные if - if, иначе при монотонном возрастании минимальное значение так и останется = 0. А если min и max сразу присвоить значение первого элемента массива, то тогда можно и if - else if.
Реклама
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4253
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

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

Сообщение Transformer-V »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797870#p4797870"]- здесь грубейшая ошибка. Если в середине массива попадется значение 0 (например array[] = {10, 30, 5, 0, 7, 20, 15, 100} ), цикл прервется еще до конца массива. И наоборот, если в массиве НЕТ значения 0 ( например array[] = {70, 50, 34, 60, 10, 25} ), цикл не прервется никогда и указатель выйдет за границы массива.[/uquote]
Здесь нет ошибки, это всего лишь твоя невнимательность, массив "предопределен" тобою и в середине нулей в нем не было изначально.

[uquote="Rapra",url="/forum/viewtopic.php?p=4797870#p4797870"]В общем, прежде чем писать, все-таки используйте отладку с printf, а то ерунда у вас получается. Наберитесь вначале опыта.[/uquote]
Годно тебя пучит. Впрочем, опыта написания оптимизированного кода у тебя нет от слова совсем.
Rapra
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Пн фев 16, 2026 17:30:02

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

Сообщение Rapra »

Transformer-V, Брысь отседава. Сначала научитесь думать. Значение 0 в реальном массиве входных данных может случайно попасть как в середине массива, так и вообще отсутствовать. И в этом случае ваш код с while(*ptr) с реальными внешними данными будет выдавать либо преждевременное завершение цикла, либо зависание и вылет за границы массива. Хотяб думайте маленько, прежде чем писать. А то напишите глупость, а потом пытаетесь её отстоять, побивая себя пяткой в грудь.
Для справки: while(*ptr) - это while(*ptr !=0), то есть, цикл выполняется до тех пор, пока значение по указателю *ptr не будет равно 0. Если в реальных входных данных нет значения 0, то цикл не будет прерван и выйдет за границы массива, что приведет к перезаписи содержимого ОЗУ и фатальной ошибке.

Рассматривается ведь работа с реальными входными данными. А явно инициализированный массив - это для наглядного примера. Я бы мог вообще не инициализовать массив, объявив его как int array[200], и в этом случае реальные значения будут неизвестны.

И перестаньте хамить. Вы показываете лишь свою тупость, не разбираясь в реальном поведении кода.
Последний раз редактировалось Rapra Вс мар 15, 2026 06:15:47, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4253
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

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

Сообщение Transformer-V »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797878#p4797878"]Transformer-V, Брысь отседава. Сначала научитесь думать. Значение в реальном массиве входных данных может случайно попасть как в середине массива, так и вообще отсутствовать.[/uquote]
Так ты думать совершенно не способен. А твое бла бла бла не имеет ничего общего к тебе обсуждения. Кстате классический CRT именно использует данный код и подобные трюки, но так как опыта у тебя ноль в том числе на уровне "мяса" (байтов и бит), можешь поспорить с отцами создателями С/C++ и CRT.

[uquote="Rapra",url="/forum/viewtopic.php?p=4797878#p4797878"]И в этом случае ваш код с реальными внешними данными будет выдавать либо преждевременное завершение цикла, либо зависание и вылет за границы массива.[/uquote]
Какие "внешние данные", ты тему то не уводи, твои данные в твоем примере статичны, на основании этого выставили несостоятельность твоего кода. О внешних данных или динамических данных речь не шла.

[uquote="Rapra",url="/forum/viewtopic.php?p=4797878#p4797878"]И перестаньте хамить. Вы показываете лишь свою тупость, не разбираясь в реальном поведении кода.[/uquote]
Феерическую тупость вещаешь ты скатившись на скабрезности про "умников" и т.д, поэтому закономерно обтекай.

Кстате вот еще код значительно меньше предидущего:

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

unsigned char array[] = {50, 30, 20, 30, 50, 70, 80, 70, 50, 0};
unsigned char max = 0, min = 100, outval;
unsigned char *PtrArray;

//Load Addr
PtrArray=array;
	
while0:
outval=*PtrArray;
if(outval==0) goto while0end;
if(outval>max) max=outval;
if(outval<min) min=outval;
PtrArray++;
goto while0;
while0end:
Последний раз редактировалось Transformer-V Вс мар 15, 2026 06:16:49, всего редактировалось 1 раз.
Реклама
Rapra
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Пн фев 16, 2026 17:30:02

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

Сообщение Rapra »

Может хватит уже, а? Слуш, ты, поц, ты м.удак пожизне такой или только прикидываешься, а? Ты че ваще базаришь тут а? Спрятался за монитором и думаешь, что можешь хамить, как с.ука? Нынешнее поколение молодняка, дистанцировавшись за решеткой интернета ваще не понимает, что за базаром следить надо.
Реклама
igorg1
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

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

Сообщение igorg1 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4797799#p4797799"]Нет, Игорек. В радиотехническом эмбедде - нет.
Но такие как ты погромисты меня устраивают.
Мне легко с ними конкурировать.
Их тупой стандартный код требует дополнительных аппаратных ресурсов и денег.
ЗЫ. И еще один очень важный нынче момент.
На неделе за обедом разговорился с коллегой программистом по поводу перспектив AI в написании кода.
Сейчас кодописатели стандартного кода мало кому нужны. А если и нужны, то за еду.
Раньше они обслуживали мидлов и сеньоров. А сейчас даже мидл посредством AI очень быстро генерирует стандартные тексты, оставляя за собой оригинальные решения.
Джун, как востребованная позиция, исчезает.[/uquote]
Так, началось в колхозе утро :) - и похоже оно для тебя недоброе будет :)
По-порядку -
1. Говоришь про помощник искусственного интеллекта? :) - опять крикнул из ветвей - одна теория у тебя- а сейчас мы перейдём к практике с искусственным интеллектом.
Микрочип в лучших традициях своих кинул всех с МПЛАБх, а также всех, кто покупал отладочные платы с РКОВ 3 - т. е. с внутрисхемным отладчиком на базе PIC24FJ256GB106 - начиная с версии МПЛАБх 6.25 они больше не поддерживают его, также как и ПИККИТ3 - а 90% отладочных плат у микрочипа с отладчиком было именно на базе РКОВ 3.
Но эта лирика.
На следующей картинке видно (это скрин с окна About МПЛАБх 6.30), что они делают прыжок в сторону VS Code - и когда они его кинут - вопрос времени:
Изображение
А вот как сместился фокус с МПЛАБх с сайта микрочип: на первом месте в разделе средств разработки стоит VS code, затем помощник с искусственным интеллектом, затем операционная система ЗЕФИР, и на четвёртом месте - МПЛАх :)
Изображение

Специально для КРАМа - хотя мне уже в принципе надоело слушать его глупые утверждения что я ничего не знаю :( - сейчас я сделаю буквально за 20 минут синусоиду на первой попавшейся мне плате с 32-х битным камнем - с использованием искуственного интелекта микрочиповского.
Итак - камень atSAMC21N18A - такой стоит на отладочной плате, 48 мГЦ, 256 кило флэш, 32 кило ОЗУ, 12 каналов ДМА, 10 бит ЦАП с дискретизацией 350 кило семплов в секунду.
Задача - сделать синусоиду, допустим 5 килогерц.
Буду использовать 100 сэмплов на период - Крам, не против??? 100 сэмплов - чтобы удобно было считать.
Создаю проект в МПЛАБх (можно в VS code - но у них пока косо там работает) - настраиваю осцилляторы, пины и пр. в гармошке (MCC Harmony) - затем открываю VS Code и испортирую созданный проект:
Изображение
Дальше я тебе КРАМ не буду показывать как я запускаю помощник с искуственным интеллектом :( - в силу твоей глупости, и твоего голословного утверждения что я ничего не знаю - вот что сгенерировал ИИ в main.c :
Изображение
Там же в VS code build проект и прошиваю камень.
Всё заняло минут 10.
Подключаю ослика - вот так проводилось измерение:
Изображение
Вот результат:
Изображение
И вот несколько ещё картинок:
Изображение
И вот:
Изображение
Говоришь, КРАМ, что я синусоиду не сделаю????
Ты просто глупый саоуверенный (и самовлюблённый в себя), человек - ты даже мысли не можешь допустить что кто-то может лучше и быстрее тебя что-то сделать :)
Последний раз редактировалось igorg1 Вс мар 15, 2026 06:53:34, всего редактировалось 3 раза.
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4253
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

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

Сообщение Transformer-V »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797880#p4797880"]Может хватит уже, а? Слуш, ты, поц, ты м.удак пожизне такой или только прикидываешься, а?[/uquote]
Кончились аргументы и закономерно потекла у тебя грязь? Вот и славно. Учи язык C и не позорь профессию программист.
Rapra
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Пн фев 16, 2026 17:30:02

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

Сообщение Rapra »

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

А помимо оскорблений, просто попробуй применить свой код с while(*ptr) к НЕИНИЦИАЛИЗОВАННОМУ массиву и посмотри в printf, что выйдет :))
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4253
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

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

Сообщение Transformer-V »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797883#p4797883"]За своим текстом посмотри, у кого грязь текла изначально. Ты постоянно хамишь всем только лишь потому, что спрятался за монитором в виртуальном пространстве и чувствуешь себя "в безопасности", что никто физически в рыло тебе не нарежет. Типичное поведение нынешнего молодняка.[/uquote]
Да ладно про хамство - "умник нарисовался" https://radiokot.ru/forum/viewtopic.php ... 7#p4797867 не тебе мычать. В реалиях ты гарантированно запрячешься, поэтому гадить способен только на форуме. А если судить твою тюремную речь из подворотни образования у тебя ноль.

[uquote="Rapra",url="/forum/viewtopic.php?p=4797883#p4797883"]А помимо оскорблений, просто попробуй применить свой код с while(*ptr) к НЕИНИЦИАЛИЗОВАННОМУ массиву и посмотри в printf, что выйдет :))[/uquote]
Каких "оскорблений"? Лечи головошку или выйди из интернета если задевают твое мыльное ЭГО. Про "неиницилизорованный массив" это очередной плод твоего воображения или попытка увести в сторону тему. Пример был дан на основании твоего примера с незначительными правками.
Rapra
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Пн фев 16, 2026 17:30:02

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

Сообщение Rapra »

Ну дак я в своем примере могу убрать инициализацию массива и код всё равно продолжит работать:

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

int array[200];
int min = array[0], max = array[0];

for(int i = 1; i < 199; i++)
{
	if(array[i] > max) max = array[i];
	else if(array[i] < min) min = array[i];
}
потому что цикл привязан к границам массива, а не к значениям его элементов.

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

И самое главное. В моем изначальном примере в инициализации массива НЕ было 0:
[uquote="Rapra",url="/forum/viewtopic.php?p=4797759#p4797759"]

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

int array[] = {50, 30, 20, 30, 50, 70, 80, 70, 50};
int max = array[0], min = array[0];

for(int i = 1; i < 9; i++)
{
     if(array[i] > max)
          max = array[i];
     else if(array[i] < min)
          min = array[i];
}
[/uquote]
А 0 в него добавил ТЫ САМ, поскольку без этого 0 твой код НЕ работал:
[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797868#p4797868"]

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

unsigned char array[] = {50, 30, 20, 30, 50, 70, 80, 70, 50, 0};
unsigned char max = 0, min = 100, outval;
unsigned char *PtrArray;

//Load Addr
PtrArray=array;

while(*PtrArray)
{
outval=*PtrArray;
if(outval>max) max=outval;
if(outval<min) min=outval;
PtrArray++;
}
[/uquote]
Так что давай прекратим этот спор, поскольку ты облажался еще в самом начале и засыпался вхлам, пытаясь выгрести любым способом.
Последний раз редактировалось Rapra Вс мар 15, 2026 07:05:45, всего редактировалось 2 раза.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25359
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="igorg1",url="/forum/viewtopic.php?p=4797881#p4797881"]По-порядку -
бла...бла...бла...
Специально для КРАМа - хотя мне уже в принципе надоело слушать его глупые утверждения что я ничего не знаю :( - сейчас я сделаю буквально за 20 минут синусоиду на первой попавшейся мне плате с 32-х битным камнем - с использованием искуственного интелекта микрочиповского.[/uquote]
Что и требовалось доказать. :tea:
Ты, Игорёк, бездарно спалился.
1. Доказал, что твое умение сделать нормальную синусоиду возможно только с применением AI и вороха других инструментов. Как это происходит и какая при этом получается синусоида (она же может быть разной, например перестраиваемая с мелким дискретом по частоте в условиях реального кода) ты не знаешь и не контролируешь. Применение подобных инструментов дает с виду компактный код, за которым стоит ворох мусорных библиотек, что приводит к неуправляемому тобой оверхеду и, как следствие, применению дорогостоящих решений.
Смотришь и убиваешь себя апстену: https://www.chipdip.ru/product/atsamc21 ... 9473540624
Если все это сублимировать, то это выглядит как низкий порог входа в конкретное изделие и потому его низкую конкурентоспособность. Тебе нечего предложить рынку труда в качестве уникального продукта.
2. В сгенерированном тобой коде синусоида забита в виде 100 отсчетов на период. А где заявленная тобой экономия для пальцев? Где четверть периода без нуля? :music: Где "стандарты" и переносимость кода? Ты свою четверть периода в приведенный сейчас проект не вставишь. Работать он тут принципиально не будет.
[uquote="igorg1",url="/forum/viewtopic.php?p=4797881#p4797881"]Говоришь, КРАМ, что я синусоиду не сделаю????[/uquote]
А ты ее и не сделал. Ты просто выдал нам чужое решение, которое у меня и 5 минут не занимало, настолько оно элементарно.
Опять же, Игорёк, в радиотехническом эмбедде основное подавляющее время занимает не код, а схемотехника, конструкции и алгоритмы. Код там и 20% времени не занимает. Поэтому писать тупой код за 20 минут нет никакого смысла. Такой код не имеет рыночной цены - чисто мусор.
[uquote="igorg1",url="/forum/viewtopic.php?p=4797881#p4797881"]Ты просто глупый саоуверенный (и самовлюблённый в себя), человек - ты даже мысли не можешь допустить что кто-то может лучше и быстрее тебя что-то сделать :)[/uquote]
Ты только что изложил то, с чем сюда пришел...
А пришел ты сюда похвастаться тем, как делаешь часы. При попытке узнать у тебя в чем причина использования синуса в накале, ты слился и отослал к какой то теме, где кто то должен мне что то объяснить.
ЗЫ. Кстати, по форме кода. Я все таки не программист, а радиоинженер, и мои воззрения на код в эмбедде несколько отличаются от твоих.
Зачем тебе дефайн размера массива синуса? Ты таким образом создал избыточную и НЕЗАВИСИМУЮ от основной вторую сущность. Если ты изменишь размер массива, то тебе придется изменить и дефайн. Ты ничего не знаешь про sizeof? :wink: :tea: :music:

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

#define	SIZE_OF(array)		(sizeof(array)/sizeof(array[0]))
ЗЗЫ. Еще смешнее выглядит у тебя сам нечитаемый массив синуса. Ты даже примерно не определишь где у него точки нуля функции. Нахера ты его сделал в хексе? Или это не ты его таким сделал? :)))
Последний раз редактировалось КРАМ Вс мар 15, 2026 07:19:12, всего редактировалось 2 раза.
igorg1
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

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

Сообщение igorg1 »

Ты опять на своей волне???
Ты же начал здесь из ветвей кричать про ИИ, не???
Далее - это именно моё решение.
Дефайн потому что ТАК ПРИНЯТО ПИСАТЬ - объявишь массив больше чем дефайн - компилятор пошлёт тебя прогуляться:)
Если в компиляторе выставлена опция следовать стандарту СИ:)
Что непонятного?
Причина использования синуса в накале - очень простая - смотрим даташит на тот же ИВ-21 :)
И затем МНЕ БЫЛО ИНТЕРЕСНО сделать именно СИНУСОИДУ на ШИМ - и я сделал:)
Была бы задача сделать накал для лампы - взял бы решение на 2-х транзисторах с моточным трансформатором как в соседней ветке :)
Это понятно?
Изображение

Добавлено after 7 minutes 24 seconds:
По поводу вороха библиотек:)
Ты очень устарел, КРАМушек :)
Ты для начала открой ЛЮБОЙ проект на ЗЕФИРЕ - там будет минимум с тысячу файлов:)
И микрочип, следую тенденции мировой - переходит на Зефир на своих 32-х битных камнях - смотри мои скрины :)
Они пока не перевели на Зефир старые 32-х битные камни - ПИК32МХ.
Все остальные камни у них поддерживаются Зефиром, и все примеры кода на новых камнях - только Зефир с гармошкой:)
А ты сиди здесь со своим АСМом и спорь здесь про избыточность кода на ХС8 :)
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4253
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

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

Сообщение Transformer-V »

[uquote="Rapra",url="/forum/viewtopic.php?p=4797885#p4797885"]И самое главное. В моем изначальном примере в инициализации массива НЕ было 0:
Так что давай прекратим этот спор, поскольку ты облажался еще в самом начале и засыпался вхлам, пытаясь выгрести любым способом.[/uquote]
В твоем примере https://radiokot.ru/forum/viewtopic.php ... 9#p4797759 , массив "int array[]" не имеет размерности(не задана длина), следовательно добавить могу что угодно, это раз! Ты читать умеешь, прочти заново что я писал тебе выше, это два. Насчет "облажался" и прочий диалект подворотни вещай кому нибудь другому, но не мне, на меня это не действует от слова совсем, мы на тематическом форуме, а не на кортах в обоссаном падике твоего дома лузгаем прогорклые семки. К слову, я тебе привел несколько правильных примеров, но от полного твоего профессионального бессилия вместо благодарности тебя задел именно предпоследний пример, так что "кто на что учился"(С).

P.S. В догон, использование(хоть ты в попыхах затер содержимое своего сообщения ) volatile правило плохово тона.
Последний раз редактировалось Transformer-V Вс мар 15, 2026 07:23:49, всего редактировалось 3 раза.
igorg1
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

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

Сообщение igorg1 »

И именно часы на ИВ-18 я сделаю на 32-х битном нордике с WiFi со встроенным Web сервером - вообще кнопок не будет :)
А ты дерзай дальше с кнопочками-энкодерами :)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25359
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="igorg1",url="/forum/viewtopic.php?p=4797888#p4797888"]Ты же начал здесь из ветвей кричать про ИИ, не???[/uquote]
Нет. я ничего про ИИ не кричал. ИИ был упомянут в определенном смысле и не более того.
Ты показал как НЕ НАДО делать.
[uquote="igorg1",url="/forum/viewtopic.php?p=4797888#p4797888"]Дефайн потому что ТАК ПРИНЯТО ПИСАТЬ - объявишь массив больше чем дефайн - компилятор пошлёт тебя прогуляться:)[/uquote]
Так никем не принято. Так пишешь ты.
Нормальные люди не создают конфликты на ровном месте и не требуют изменять код в двух местах в обязательном порядке.
Конструкция:

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

#define   SIZE_OF(array)      (sizeof(array)/sizeof(array[0]))
не требует вообще ничего изменять в коде при изменении длины массива.
[uquote="igorg1",url="/forum/viewtopic.php?p=4797888#p4797888"]Причина использования синуса в накале - очень простая - смотрим даташит на тот же ИВ-21[/uquote]
Ты применил трансформатор с отводом от средней точки?
Я чего то такого не заметил... Неужели пропустил?
[uquote="igorg1",url="/forum/viewtopic.php?p=4797888#p4797888"]И затем МНЕ БЫЛО ИНТЕРЕСНО сделать именно СИНУСОИДУ на ШИМ - и я сделал[/uquote]
Нет, ничего ты не сделал. Ни сейчас, ни шесть лет назад.
Ты сделал фуфло и самодовольно решил, что все ништяк-ништяк... :music:
[uquote="igorg1",url="/forum/viewtopic.php?p=4797888#p4797888"]По поводу вороха библиотек:)
Ты очень устарел, КРАМушек :)
Ты для начала открой ЛЮБОЙ проект на ЗЕФИРЕ - там будет минимум с тысячу файлов:)
И микрочип, следую тенденции мировой - переходит на Зефир на своих 32-х битных камнях - смотри мои скрины :)
Они пока не перевели на Зефир старые 32-х битные камни - ПИК32МХ.
Все остальные камни у них поддерживаются Зефиром, и все примеры кода на новых камнях - только Зефир с гармошкой:)
А ты сиди здесь со своим АСМом и спорь здесь про избыточность кода на ХС8[/uquote]
Не ищи дурее себя, Игорёк.
То, что ты внезапно узнал от Микрочипа, известно уже лет 15 минимум.
У меня такое ощущение, что ты представляешь РТОС как черный ящик с тысячью файлов - не более того.
Я тебе открою один секрет Полишинеля.
Задача Микрочипа не создавать тебе рациональные инструменты разработки. Задача Микрочипа - продавать свою основную продукцию - микросхемы.
Именно для этого он всеми силами понижает порог входа в их применение. А твои проблемы при создании конкурентного продукта его не интересуют.

Добавлено after 2 minutes 44 seconds:
[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797889#p4797889"]использование volatile правило плохово тона.[/uquote]
О! Это очень интересно...
Объясни почему.

Добавлено after 5 minutes 40 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4797890#p4797890"]И именно часы на ИВ-18 я сделаю на 32-х битном нордике с WiFi со встроенным Web сервером - вообще кнопок не будет :)
А ты дерзай дальше с кнопочками-энкодерами :)[/uquote]
У меня есть навигатор Garmin. И у него нет кнопочек. Как и нет связи с интернетом в автономной работе. Однако время там устанавливать не нужно (не считая первоначальной установки поясного времени, конечно). Так зачем тебе вебка? Чем тебя не устраивает GPS? Тем более, что модули WiFi и GPS тебе одинаково доступны только в сборе. Сам ты их не сделаешь. Квалификации нет.
Rapra
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Пн фев 16, 2026 17:30:02

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

Сообщение Rapra »

[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797889#p4797889"][
В догон, использование(хоть ты в попыхах затер содержимое своего сообщения ) volatile правило плохово тона.[/uquote]
volatile там изначально стояло, чтобы при оптимизации -O3 переменные nim и max не были выброшены компилятором. Но потом убрал ЗДЕСЬ В ТЕКСТЕ volatile, чтоб не мешалось и не путало таких вот необразованных, как ты :)

Добавлено after 2 minutes 14 seconds:
[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797889#p4797889"]массив "int array[]" не имеет размерности(не задана длина)[/uquote]
Длина массива задается неявно при ИНИЦИАЛИЗАЦИИ. Компилятор сам высчитывает, сколько элементов в массиве на основе СПИСКА ИНИЦИАЛИЗАЦИИ. Ты бы знал это, если бы читал книжки :))

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

int array[] = {1, 2, 3, 4, 5, 6};
int size = sizeof(array) / sizeof(int);
здесь size = 6;

А если написать

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

int array[];
int size = sizeof(array) / sizeof(int);
то получим ошибку компиляции: storage size of 'array' isn't known.

Ты бы знал это, если бы читал книжки. А сейчас просто пытаешься выгрести любым способом после твоего облажания в самом начале.
Знаешь, показатели твоей кармы/рейтинга весьма красноречиво говорят о твоем статусе здесь. Ладно бы там были вариации на несколько единиц, но когда -75/-208 - это весьма показательно говорит о твоей бестолковости.
Последний раз редактировалось Rapra Вс мар 15, 2026 07:57:12, всего редактировалось 1 раз.
igorg1
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

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

Сообщение igorg1 »

Ты дуру иногда выключай.
МНЕ ЗАЧЕМ МЕНЯТЬ СТАТИЧЕСКИЙ МАССИВ????
ЗАЧЕМ???
А твоя конструкция с sizeof - это фуфло, потому что всё это делается на этапе компиляции.
Мне нужен будет ДИНАМИЧЕСКИЙ массив - будет malloc() или calloc()
Что непонятного???
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18647
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Эй, спорщики, ищущие минимум и максимум, вопрос на засыпку: если массив константный (неизменный размер и содержимое), с какой целью в нем искать минимум и максимум?! Все параметры констант алгоритма известны заранее, еще до момента написания кода.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
igorg1
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

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

Сообщение igorg1 »

И вообще, КРАМ, этот мой код ПОЛНОСТЬЮ написал ИИ - я ему просто сказал что надо сделать. А ты без гармошки врукопашную бы настраивал осцилляторы, ДМА, таймеры - минимум неделю - там регистров ой как много, причём взаимосвязанных - это тебе не ПИК18, это ARM CORTEX M0

Добавлено after 2 minutes 49 seconds:
Вот опять ты своё глупое ИМНО выставил :)
Ну Зефир допустим всего года 3 в промышленной эксплуатации :)
И порог входа в Зефир - ой какой большой :)
Это тебе не АСМ с 33 командами :)
Для начала ты вкури что такое .dts и чем отличается от .dtsi, что такое планировщик и зачем нужны мутексы и семафорами - замечу, концепция Зефира в корне отличается от концепции той же FreeRTOS :)

Вот отладочная плата микрочиповская с модулем WFI32E - это PIC32MZ+ радиомуль WiFi -
Изображение
Вот именно на нём я сделал достаточное количество изделий - именно коммерческих.
Из некомерческих - сделал ЛОГ сервер для кооператива (у меня там гараж, всего 24 гаража, камера стоит) - попросил председатель - смысл - хватаешь смартфон - заходишь на Веб сервер в гараже - интернета нет ос слова совсем - подземные боксы потому что, на этом модуле поднята точка доступа - авторизируешься, выставляешь даты ЛОГа - и получаешь на смартфон текстовый файлик, кто когда отрывал ворота/калитку :)
А вот летом я на базе нордика с Channel sounding - т. е. с технологией определения расстояния между приемником и передатчиком - выкину все эти далловские таблетки - и будет другое - подошел к калитке - она уже открыта. тоже самое с воротами - открыл - пока не выехал - не закроются :)
Вопросы???
А ты сиди дальше на своём устаревшем РФИДе :)
Ответить

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