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

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

[uquote="ARV",url="/forum/viewtopic.php?p=4797898#p4797898"]Эй, спорщики, ищущие минимум и максимум, вопрос на засыпку: если массив константный (неизменный размер и содержимое), с какой целью в нем искать минимум и максимум?! Все параметры констант алгоритма известны заранее, еще до момента написания кода.[/uquote]
Константный - ОН ТОЛЬКО ДЛЯ ПРИМЕРА! :)) Не воспринимайте всё буквально. (строго говоря, он НЕ КОНСТАНТНЫЙ, потому что нет const int array[]. Он - предварительно инициализованный константами). Что вовсе не говорит о том, что содержимое массива не может быть изменено.
Кстати, даже в константном массиве на over9000 элементов визуально не всегда прям видно минимум и максимум. Вы ж не знаете точно, откуда этот константный массив получился. Может, это какие-то сторонние данные на много тысяч элементов. И если бы язык Си имел constexpr, то можно min/max было посчитать во время компиляции.

Добавлено after 5 minutes 8 seconds:
[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797889#p4797889"], массив "int array[]" не имеет размерности(не задана длина),[/uquote]
Если бы ты читал книжки, знал бы, что при инициализации массива его длина вычисляется компилятором автоматически:

Изображение

А вот это вызовет ошибку компиляции:

Изображение
Последний раз редактировалось Rapra Вс мар 15, 2026 08:25:45, всего редактировалось 2 раза.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

[uquote="igorg1",url="/forum/viewtopic.php?p=4797897#p4797897"]Ты дуру иногда выключай.
МНЕ ЗАЧЕМ МЕНЯТЬ СТАТИЧЕСКИЙ МАССИВ????
ЗАЧЕМ???
А твоя конструкция с sizeof - это фуфло, потому что всё это делается на этапе компиляции.
Мне нужен будет ДИНАМИЧЕСКИЙ массив - будет malloc() или calloc()
Что непонятного???[/uquote]
Все непонятно, ибо ты несешь пургу.
Менять массив синуса нужно, если ты создаешь проект с иными параметрами сигнала.
Менять массив нужно, если при отладке проекта выясняются иные потребности к сигналу.
И дурачку типа тебя ясно, что ЛЮБОЙ дефайн - это опция препроцессора, а не компилятора и, тем более, не рантайма.
Динамический массив тут вообще не упоминался. У тебя синус - это const или его копия в ОЗУ.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Ну, если константный для примера, то алгоритм должен учитывать любые комбинации: от отсортированных по возрастанию/убыванию, до состоящих и 100500 нулей и одного не нуля...

Чо тут спорить-то? Частные случаи применимы именно частно, а всегда применимы только универсальные алгоритмы

Добавлено after 4 minutes 52 seconds:
Мне, как тупому, не понятно, зачем менять массив синуса вообще? Я учился еще на таблицах Брадиса, и таблицы синуса там были одни и те же лет сто, наверное...

Если МК, конечно, не в состоянии математику над табличкой в рантайме делать, тогда, пожалуй, и таблицу синуса менять придется... Но что за хрень такой МК может в итоге сделать, я тоже из-за тупости не понимаю...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Строго говоря, показанный массив НЕ константный, потому что он НЕ объявлен как const int array[]. Массив лишь ИНИЦИАЛИЗОВАН константами. Но это не говорит о том, что элементы массива не могут быть изменены в последствии.

А в показанном алгоритме с циклом for поиск min/max не зависит от сортировки по возрастанию/убыванию или от последовательно идущих нулей или одинаковых значений.
Цикл while(*ptr) конечно же не будет работать со случайными реальными данными, поскольку зависит от обязательного наличия 0 в конце.

Добавлено after 2 minutes 55 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4797907#p4797907"]зачем менять массив синуса вообще? Я[/uquote]
В целом и не нужно его менять. Ведь есть даже микросхемы DDS-генератора с жестко зашитой таблицей синуса.
Вот если нужно поменять форму сигнала, тогда конечно надо поменять и таблицу. Но синус он и в африке синус, таблицы Брадиса уже тыщщу лет как неизменны.
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Сообщения: 207
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4797904#p4797904"][uquote="igorg1",url="/forum/viewtopic.php?p=4797897#p4797897"]Ты дуру иногда выключай.
МНЕ ЗАЧЕМ МЕНЯТЬ СТАТИЧЕСКИЙ МАССИВ????
ЗАЧЕМ???
А твоя конструкция с sizeof - это фуфло, потому что всё это делается на этапе компиляции.
Мне нужен будет ДИНАМИЧЕСКИЙ массив - будет malloc() или calloc()
Что непонятного???[/uquote]
Все непонятно, ибо ты несешь пургу.
Менять массив синуса нужно, если ты создаешь проект с иными параметрами сигнала.
Менять массив нужно, если при отладке проекта выясняются иные потребности к сигналу.
И дурачку типа тебя ясно, что ЛЮБОЙ дефайн - это опция препроцессора, а не компилятора и, тем более, не рантайма.
Динамический массив тут вообще не упоминался. У тебя синус - это const или его копия в ОЗУ.[/uquote]
и что? В процессе отладки выяснили - изменили:)
В процессе работы говоришь????
Ну так создам ДИНАМИЧЕСКИЙ массив - в чём проблема????
А вот в статическом массиве - я ничего менять не буду.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

[uquote="ARV",url="/forum/viewtopic.php?p=4797907#p4797907"]Мне, как тупому, не понятно, зачем менять массив синуса вообще? Я учился еще на таблицах Брадиса...[/uquote]
Потому, что частота дискретизации может быть разной.
В разных проектах или в текущем. где при отладке выясняется, что частоту дискретизации нужно менять.
Но дело не в этом, Роман.
Дело в том, что вы смешали в кучу две совершенно разных случая в рамках этой ветки форума.
Поиск максимума и минимума происходил в моем коде. фрагмент которого попал на глаза Игорьку и он решил беспонтово поумничать.
В этом фрагменте находилась центральная частота при анализе массива полученного через DMA от модуля захвата SMT. То есть массив таки volatile.
А массив синуса обсуждался в рамках синтеза сигнала. Причем при синтезе посредством PWM нужно подобрать соотношение частоты дискретизации, частоты ШИМ и частоты синтезируемого сигнала. И в этом процессе иногда приходится менять размер массива синуса.

Добавлено after 9 minutes 7 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4797913#p4797913"]и что? В процессе отладки выяснили - изменили[/uquote]
Это если изменили только синус и единственный раз.
А практика показывает, что изменять нужно разные массивы и в разных местах. Часто не по одному разу и на фоне остальной работы с кодом. Поэтому писать всякую дублирующую хрень нет никакого смысла. Ты вон к скобкам в одной строке прицепился, а они вообще никак и ни на что не влияют.
[uquote="igorg1",url="/forum/viewtopic.php?p=4797913#p4797913"]В процессе работы говоришь????
Ну так создам ДИНАМИЧЕСКИЙ массив - в чём проблема????
А вот в статическом массиве - я ничего менять не буду.[/uquote]
Ну так глупец никогда ничего не меняет. Поэтому у него синус и не синус вовсе.
"В процессе работы" - это обиходный набор слов.
"В процессе работы" над кодом или "в процессе работы" кода?
:facepalm:
Кроме того, динамический массив - это способ выделения памяти, а не возможность изменить массив. Учи матчасть.
Изменить размер синуса в ОЗУ можно и в пределах выделенной памяти с расчетом на максимальный размер. Учитывая использование синуса в DMA, выделять память под динамический массив - это херовая идея ведущая в ад.

Добавлено after 8 minutes 11 seconds:
[uquote="Rapra",url="/forum/viewtopic.php?p=4797910#p4797910"]Ведь есть даже микросхемы DDS-генератора с жестко зашитой таблицей синуса.[/uquote]
Это так. Только нужно вспомнить как работает DDS. Если его работу воспроизвести на МК в программном режиме. мы более ничего на этом МК сделать не сможем. Каждый клок накачки ядра DDS потребует проделать простую математическую операцию суммы, а затем округления и вычисления указателя. Это невозможно автоматизировать вне ядра машины.
Поэтому в МК ставят голое ядро DDS, которое генерирует не синус, а события отсчетов. И делает это автоматически. Количество отсчетов при этом может быть любым - это определяется способом цифроаналогового преобразования и требованиями к антиалиасингу. Антиалиасинг - это внешний фильтр и его реализуемость для достижения требуемых параметров сигнала кидает цепочку настроек проекта в размер таблицы синуса.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

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

Поскольку я тупой, я всегда всё делаю "правильно", и даже избыточно правильно, например, никогда не полагаюсь на приоритеты операций, но всегда расставляю приоритеты скобками. Поэтому, когда я вижу код поиска максимума, сопровождаемого заявлениями "в массиве нет нулей, поэтому можно перебирать, пока ноль не встретится", мой внутренний дебил бьётся в истерике: это же абсолютно не правильный алгоритм!

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

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

Сообщение igorg1 »

То : КРАм :) -
я правильно тебя понял, что ты свой массив хранишь в ОЗУ? :)
Сильно.
А не пробовал например делать тоже самое с ДИНАМИЧЕСКИМ массивом?
Способ выделение памяти - это использование именно malloc()/calloc() - вот они выделят память - а ты в выделенной памяти и сделаешь что тебе надо - массив, структуру и пр. :) - это ясно?
А когда тебе не потребуются они - free() в помощь :)
Ты наверное не знаешь что такое КУЧА (heap) и что с ней делают :)
УЧИ мат. часть - и не пиши /плети херни

Добавлено after 1 minute 51 second:
И про синус вообще молчи - я второй раз показываю именно в железе как работает у меня.
Что не так?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Кстати, на счет программной реализации DDS и "мы больше ничего сделать не сможем" - я категорически не согласен с таким утверждением! Во всяком случае, на AVR лично делал "музыкальную шкатулку", которая этим методом синтезировала полифонию, при этом управлялась по ИК-сигналу. На аттини2313, т.е. даже без аппаратного умножителя. Может быть синтез мегагерцов и вправду сожрет все ресурсы, но это ЧАСТНЫЙ СЛУЧАЙ, а заявление прозвучало, как ОБЩАЯ ИСТИНА.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

DDS на микроконтроллере я делал, хоть и очень давно уже. В целом, всё там нормально работает. Конечно, есть ограничения по максимальной частоте и размеру таблицы синуса, но в целом вполне работоспособный вариант.
Прорезались зубы
Сообщения: 207
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

То КРАм: - вот ты достал точно своей ничем не подтвержденной уверенностью в своей правоте и обсиранием тех, кто несогласен с тобой.
Вот нашел у себя PIC18F26K42 - сделать тебе на нём синусоиду, треугольник????
У него сейчас поглядел есть 5-ти битный ЦАП :)
Вот его и буду использовать - сразу и опровергну твои утверждения что для синусоиды хватит и 5 бит :)
Сделаю буквально за час.
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797874#p4797874"]Одинаковое, потому что ты не отличаешь "статику" от "динамики"[/uquote]
Да нивапрос.
С индексом:

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

	int array[200];
	int size = sizeof(array) / sizeof(int);

	volatile int min = array[0], max = array[0];
20010044:	9a02      	ldr	r2, [sp, #8]
20010046:	a8c9      	add	r0, sp, #804	; 0x324
20010048:	ab02      	add	r3, sp, #8
2001004a:	9200      	str	r2, [sp, #0]
2001004c:	9201      	str	r2, [sp, #4]
2001004e:	e002      	b.n	20010056 <main+0x16>

	for(int i = 1; i < size; i++)
	{
		if(array[i] > max) max = array[i];
20010050:	9201      	str	r2, [sp, #4]
20010052:	4283      	cmp	r3, r0
20010054:	d00a      	beq.n	2001006c <main+0x2c>

20010056:	f853 2f04 	ldr.w	r2, [r3, #4]!
2001005a:	9901      	ldr	r1, [sp, #4]
2001005c:	428a      	cmp	r2, r1
2001005e:	dcf7      	bgt.n	20010050 <main+0x10>
		else if(array[i] < min) min = array[i];
20010060:	9900      	ldr	r1, [sp, #0]
20010062:	428a      	cmp	r2, r1
20010064:	daf5      	bge.n	20010052 <main+0x12>

20010066:	4283      	cmp	r3, r0
20010068:	9200      	str	r2, [sp, #0]
	for(int i = 1; i < size; i++)
2001006a:	d1f4      	bne.n	20010056 <main+0x16>
С указателем:

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

	int array[200];
	int size = sizeof(array) / sizeof(int);
	int *ptr = array;
	int i = size;

	volatile int min = *ptr, max = *ptr;
20010044:	9a02      	ldr	r2, [sp, #8]
20010046:	a8c9      	add	r0, sp, #804	; 0x324
20010048:	ab01      	add	r3, sp, #4
2001004a:	9200      	str	r2, [sp, #0]
2001004c:	9201      	str	r2, [sp, #4]
2001004e:	e002      	b.n	20010056 <main+0x16>

	while(i--)
	{
		if(*ptr > max) max = *ptr;
20010050:	9201      	str	r2, [sp, #4]
20010052:	4283      	cmp	r3, r0
20010054:	d00a      	beq.n	2001006c <main+0x2c>

20010056:	f853 2f04 	ldr.w	r2, [r3, #4]!
2001005a:	9901      	ldr	r1, [sp, #4]
2001005c:	428a      	cmp	r2, r1
2001005e:	dcf7      	bgt.n	20010050 <main+0x10>
		else if(*ptr < min) min = *ptr;
20010060:	9900      	ldr	r1, [sp, #0]
20010062:	428a      	cmp	r2, r1
20010064:	daf5      	bge.n	20010052 <main+0x12>

20010066:	4283      	cmp	r3, r0
20010068:	9200      	str	r2, [sp, #0]
	while(i--)
2001006a:	d1f4      	bne.n	20010056 <main+0x16>
Код совершенно идентичен - 19 команд что в первом, что во втором случае.
Это говорит о том, что в данном примере по крайней мере на ARM различий между индексом и указателем нет вообще!
Таким образом, фраза
[uquote="Transformer-V",url="/forum/viewtopic.php?p=4797868#p4797868"]Обращение к памяти через "[ ]" солидно жрет ресурсы.[/uquote]
является ошибочной в рассмотренном случае.
Такие вот дела.
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

[uquote="igorg1",url="/forum/viewtopic.php?p=4797930#p4797930"]То : КРАм :) -
я правильно тебя понял, что ты свой массив хранишь в ОЗУ?[/uquote]
Какой массив? Ты вообще о чем? Есть массивы во флеше, например синус. Есть в ОЗУ. А есть когда из флеша массив переписывается в ОЗУ, например синус/косинус цифрового гетеродина перемноженный на оконную функцию.
[uquote="igorg1",url="/forum/viewtopic.php?p=4797930#p4797930"]И про синус вообще молчи - я второй раз показываю именно в железе как работает у меня.
Что не так?[/uquote]Не так то, что последний твой "показ" сделал не ты, а набор инструментов Микрочипа. Ты получил код, в котором ты вообще ничего не понимаешь.
Даже массив синуса делал не ты.
Но если ты напряжешь свой "эксклюзивный" моск и сумеешь наконец изучить самые простые основы цифровой обработки сигналов, то безусловно сумеешь сам сгенерировать код, который синтезирует синус и посчитать к нему антиалиасинг. Я в тебя верю, Игорёк... :tea: :)))

Добавлено after 6 minutes 3 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4797943#p4797943"]сразу и опровергну твои утверждения что для синусоиды хватит и 5 бит[/uquote]
Не опровергнешь, Игорёк...
Патамушта ты уже "опроверг" синус в PIC10F322. На самом деле ты опроверг самого себя.
Синус полностью определяется всего 2 отсчетами за период и 1 разрядом разрешения по амплитуде. Поэтому получить его из меандра - два пальца обоссать. Всего то нужен один дроссель и один конденсатор.
А уж из 5 разрядов по амплитуде сможет даже ежик. Нащщет тебя, Игорёк, я немного сомневаюсь. Но верю. :) Я вообще оптимист по жизни.
Прорезались зубы
Сообщения: 207
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

ТО: Крам - Как ты запел :) - уже оказывается нужен дроссель вместо резистора:) - т. е. LC фильтр, а не RC фильтр
Переобулся быстро???
Теперь по поводу ИИ, что ты предложил :) - я знаю как с ним работать - а вот ты - НЕТ :)
И поэтому код, который сгенерировал ИИ - я буду считать своим, я говорил ИИ что делать
Понятно???
И не ори когда не знаешь про Зефир - там твои 33 инструкции - ну это курам на смех :)
Ты не знаешь основы ООП (Объектно-Ориентированного Программирования) - одно из правил - это ИНКАПСУЛЯЦИЯ - т. е. сокрытие данных :)
Ты не знаешь что написано в функции (объекте/классе) - но ты знаешь как пользоваться:)
Вот ты каждый день пользуешься телевизором - правильно? - а вот как он сделан, на какой элементной базе - ты не знаешь
И вот здесь точно также - я сказал Гармошке - и она настроила мне камень :)
Я сказал ИИ - был написан код ИИ.
Дальше что?
Ответ один - надо уметь пользоваться :)
Ну или как ты сидеть в АСМе.
И поучать иных, кто твою идеологи не разделяет - уму-разуму.

Добавлено after 8 minutes 28 seconds:
А если будешь дальше гнуть свою линию - выложу код как работать с динамическими массивом через структуру - тебе даже ума не хватит такое написать:)
И, кстати, ИИ сделал мне массив для ЦАП - и там 66 элементов в массиве :) - ответь, почему???
Спросить у ИИ?
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Пацаны, обобчем спор то? Про DDS генератор чтоль?
Прорезались зубы
Сообщения: 207
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798029#p4798029"]Пацаны, обобчем спор то? Про DDS генератор чтоль?[/uquote]
Да здесь один деятель пытается доказать свою линию про массив - бред в общем :)
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Мм... Ну я посмотрел про PIC10F322, да, в нем есть некий NCO - аппаратная заготовка под DDS. Аккумулятор фазы и таймер, использующий приращение фазы для генерации переполнения. Ну кагбе да.
Но с тем же успехом можно реализовать и программный DDS. Возможно, программный алгоритм на PIC10 не шибко взлетит по причине крайней ограниченности ресурсов. Но по цене этого PIC можно купить два STM32F103 и не париться. По крайней мере, на STM32F103 можно забахать нехилую таблицу синусов например на 4096 семплов и получить аппаратный 10-битный DAC.

Извините, если кого обидел, но у меня по поводу всех этих PIC10/12/16 еще с давних времен предубеждение образовалось - в свое время попортили нервы мне все эти "банковые" организации памяти и лишние инструкции по переключению банков. Потом как-то смотрел новые PIC16 с чертырехзначным номером модели, а у них только количество банков увеличилось, но сами банки так и остались.
Прорезались зубы
Сообщения: 207
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798036#p4798036"]Мм... Ну я посмотрел про PIC10F322, да, в нем есть некий NCO - аппаратная заготовка под DDS. Аккумулятор фазы и таймер, использующий приращение фазы для генерации переполнения. Ну кагбе да.
Но с тем же успехом можно реализовать и программный DDS. Возможно, программный алгоритм на PIC10 не шибко взлетит по причине крайней ограниченности ресурсов. Но по цене этого PIC можно купить два STM32F103 и не париться. По крайней мере, на STM32F103 можно забахать нехилую таблицу синусов например на 4096 семплов и получить аппаратный 10-битный DAC.

Извините, если кого обидел, но у меня по поводу всех этих PIC10/12/16 еще с давних времен предубеждение образовалось - в свое время попортили нервы мне все эти "банковые" организации памяти и лишние инструкции по переключению банков. Потом как-то смотрел новые PIC16 с чертырехзначным номером модели, а у них только количество банков увеличилось, но сами банки так и остались.[/uquote]
Весь сыр-бор разгорелся из-за моих часов на дсПИК33 - я использовал с ЮСБ и быстрым ШИМ - мне именно ЮСБ был нужен для установки даты/времени. Быстрым ШИМом я генерировал синусоиду для питания накала лампы
"гуру" сказал что это избыточно и он часы сделает на ПИК10 - якобы на NCO он сделает синусоиду.
Ничего кроме разговоров о погоде на Марсе сказано не было - хотя я достал макетку с ПИК10 и сделал ШИМ - синусоида получилась кривая
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

А для накала лампы нужна прям правоверная синусоида с изменяемой частотой? Я просто не очень в курсах насчет ламп, помню только ламповые телевизоры, у которых накал питался от обмотки трансформатора 6,3 В.
Я кагбе считаю, что получить синусоиду можно и из банального меандра, генерируемого даже ногодрыгом. Хотя мож я чего-то не понимаю в "теплом ламповом фоне", но судя по схемам старых ламповых телевизоров, для накала лампы достаточно будет генерации меандра, отфильтрованного RC-цепью на выходе.

А вот делать часы на PIC10 - нуууу ээээ, там же ног вообще кот наплакал, да и кварца, как я понял, нет вообще. Что будут показывать эти часы даже через сутки то? Я в свое время делал часы на PIC16.
Прорезались зубы
Сообщения: 207
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

Да разговор не идёт про питание лампы честным синусом - честный синус следствие для питание лампы:) - я просто сделал синусоиду на дсПИКе и применил для питание лампы. И я не меняю частоту - я честно не понимаю зачем он предложил NCO
А этот деятель начал обсирать конструкцию. Что мост не так сделан, что работать не будет и пр.
Всё :)
Ответить

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