кто программирует на младших PICах?, нужна помощь, платная... |
Здравствуйте, гость ( Вход | Регистрация )
кто программирует на младших PICах?, нужна помощь, платная... |
23.8.2010, 2:10
Сообщение
#41
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
Ортодокс, а Вы уверены, что корень из суммы квадратов мгновенных отсчетов - это то, что Вам нужно?
|
|
|
23.8.2010, 2:20
Сообщение
#42
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
|
|
|
23.8.2010, 2:45
Сообщение
#43
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Ортодокс, а Вы уверены, что корень из суммы квадратов мгновенных отсчетов - это то, что Вам нужно? Мне- да. Вам тоже, но Вы пока еще не приложили это к своим задачам. В общем, на 8МГц, а не на 4-х - это у нас 100 команд. Не успеет. Нужно немного преобразовать таблицы, вернее, выражение их породившее. Не думаю, что именно этот метод можно еще куда-то преобразовать. Есть другой, я писал выше. Но пока речь именно об этом. Успеет или нет - поглядим. В крайнем случае, будет работать на более низкой частоте, чем ШИМ. Вот, если вам такая эмоциональная подсказка поможет.. Ну, как сказать. Я мыслю так же, но приятно что Вы тоже так рассуждаете. конечно, это поддержка и помощь. Мигание светодиодами на самом деле виртуальное стремление, примерно как яишенка с ветчинкой у митьков. Помогает собраться. Едва ли соберусь когда, потому что вот это вот решать надо. Ну разве ребенок соберется, от как раз рядом ходит, как кошка на сметану. наконец-то заинтересовался хоть чем-то в электронике... То есть, по мелочи-то он паяет , но тут ему интереснее будет.. У него аппаратное умножение есть? сколько тактов? Еси нет, то не бейтесь об стену. Только 30 тыс 16-битных умножений займут в районе 3-4 мипса. У меня их будет меньше. Большая часть - восьмибитные. результат 16-битный, а сами данные- восьмибитные. Возведение в квадрат, кроме того, табличное будет. Я так думаю. Корень извлекать - сложнее чуток, там 3 или даже 4 деления. 16 битное на 8 битное. Но, кажется, они делаются как и умножения, примерно так же, да? Если нет - то могу извлекать корень и при помощи одних умножений, такого же количества. 8 бит * на 8 бит - это быстрее? |
|
|
23.8.2010, 4:19
Сообщение
#44
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
Правильно. Это когда трохи и для сэбе. А когда человек деньги собрался зарабатывать, то могут и обобрать ненароком... Значит, LPC111 сдирают? Именно когда их программировали в указанных средах? Почему и как? У них хреновая защита? Мне интересно. Я уже на Электрониксе вроде замечал упоминание об сдирании АРМ. |
|
|
23.8.2010, 4:38
Сообщение
#45
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
Там его нету, но АЦП - 8 битный, коммутатор 4 входа. Он опечатался. Не опечатался. У LPC917 ЦАП имеется, приходилось использовать. Попутно нашёл хомут в коде, генерируемом для этого случая кодеархитектом. Цитата initdac: orl P0M1, #00010000b anl P0M2, #11101111b mov AD1DAT3, #0 ;init dac1 value to zero orl ADMODB, #08h ;#04h ;enable dac1 output orl ADCON1, #04h ;enable adc1 (also enables dac1) ret После чего в AD1DAT3 просто впихиваем 8-битное число, и на 14-й лапе появляется пропорциональное ему напряжение (опора там равна VDD, хоть в мануале это явно не указано). Прикину, успеет ли умножать/делить... на 18 МГц - 9 000 000 МЦ в секунду, mul ab занимает 4 цикла, деление тоже - вроде как должен успеть. |
|
|
23.8.2010, 12:12
Сообщение
#46
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Не опечатался. У LPC917 ЦАП имеется, приходилось использовать. Попутно нашёл хомут в коде, генерируемом для этого случая кодеархитектом. После чего в AD1DAT3 просто впихиваем 8-битное число, и на 14-й лапе появляется пропорциональное ему напряжение (опора там равна VDD, хоть в мануале это явно не указано). Прикину, успеет ли умножать/делить... на 18 МГц - 9 000 000 МЦ в секунду, mul ab занимает 4 цикла, деление тоже - вроде как должен успеть. Очень интересно... А может там еще и пара разрядов АЦП где-то спрятана? А почему нету ЦАП в документации? |
|
|
23.8.2010, 12:40
Сообщение
#47
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
В UM_917 есть. Описание начинается на 31 странице.
АЦП, увы, 8-битный. Если бы не эта фигня с BOD, может, можно и на нём рискнуть... стоит 10 грн., если покупать несколько десятков. В крупном опте - меньше доллара. Там появилась новая версия (9171), сейчас ДШ гляну... Нашёл еррату, внизу страницы спряталась. Беду с BOD якобы исправили!
Прикрепленные файлы
|
|
|
23.8.2010, 16:19
Сообщение
#48
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
В UM_917 есть. Описание начинается на 31 странице. АЦП, увы, 8-битный. Если бы не эта фигня с BOD, может, можно и на нём рискнуть... стоит 10 грн., если покупать несколько десятков. В крупном опте - меньше доллара. Там появилась новая версия (9171), сейчас ДШ гляну... Нашёл еррату, внизу страницы спряталась. Беду с BOD якобы исправили! Таки да. Есть такой выход. Логичная организация, раз уж все равно ацп на цапе строится... Может иногда и сгодится... |
|
|
23.8.2010, 22:17
Сообщение
#49
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Значит, LPC111 сдирают? Именно когда их программировали в указанных средах? Почему и как? У них хреновая защита? Мне интересно. Я уже на Электрониксе вроде замечал упоминание об сдирании АРМ. ПМСМ, драть софт без исходников - дело гиблое. Поэтому я с удивлением прочел про криптование бутлодыря. Это как-бы раз. Во-вторых. Когда я это писал, я имел в виду, что для ARM-ов нормальных бесплатных IDE нет. А за пользование не лицензионным IAR-ом или KEIL-ом могут надрать (_!_). |
|
|
23.8.2010, 23:04
Сообщение
#50
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
А зачем нужны исходники, если есть рабочаяя прошивка ? Паяй платы, прошивай и продавай. А вот шифрованную - хрен продашь. Ибо дешифровать ее может только бутлодырь в уже прошитом чипе, в уже спаянном девайсе. Или некое несменяемое ядро... Без которого, все, что загружено бутлодырем значения не имеет. |
|
|
23.8.2010, 23:22
Сообщение
#51
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Лучше не путаться в терминах - несменяемое ядро может находиться в области загрузчика и так и называться. Иначе реализовать нужную функциональность сложно. А лишний гимор нам вроде бы ни к чему. Хорошо, понял. Только давайте не будем говорить об этом в теме про младшие PIC-и. И так наофтопили... |
|
|
24.8.2010, 18:21
Сообщение
#52
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
24.8.2010, 19:10
Сообщение
#53
|
||
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Цитата Все они знают. Но только смысла в этом нет для той модели, что выбрана для обсуждаемого проекта. Да, кстати. По совету _pasha я корень квадратный попробовал убрать. И возведения в квадрат заменил умножениями на константы. Ну совсем без умножений - никак. Однако, теперь можно работать в пределах байта, так как константы все меньше единицы. И использовать табличное умножение, ибо констант всего три. Пока три, надо бы больше. А то пульсации на выходе 1.5 % , а надо не более 0.4. Формула длинная. Пока остановлюсь и смакетирую в аналоговом виде все это, после будет понятнее, что можно упростить. Это \"фазовая матрица\" в которой складываются 16 сигналов, полученных из исходных 2 , каждый из сигналов сдвинут с соседним на 22,5°. CODE Формула №3 abs(sin)+abs(cos) + 0.234668*abs((sin-cos)) + 0.126742*(abs(2.42*sin-cos)+abs(sin-2.42*cos)) © сам вывел Синус и косинус получаем готовыми на аналоговых входах, их вычислять не нужно. Для приведения к форме в байт влезающей, все это надо еще делить на 1.7 , то есть, округляя - сдвигать на бит. естественно, по ходу операций а не готовый результат. |
|
|
||
24.8.2010, 23:02
Сообщение
#54
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
И возведения в квадрат заменил умножениями на константы. Ну совсем без умножений - никак. Однако, теперь можно работать в пределах байта, так как константы все меньше единицы. И использовать табличное умножение, ибо констант всего три. Пока три, надо бы больше. Пока остановлюсь и смакетирую в аналоговом виде все это, после будет понятнее, что можно упростить. Очень жаль, что 1. Нету умножения аппаратного 2. Сцуко-Протеус 7.7 с сабжевыми камнями не работает, а то бы уже модельку покрутить можно было. Вообще-то протеус после версии 7.6 мне нравится все больше и больше... Больше констант - можно разбивать 8*8 умножение на 4*4 - все равно будет короче сдвигового варианта. |
|
|
25.8.2010, 0:28
Сообщение
#55
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Больше констант - можно разбивать 8*8 умножение на 4*4 - все равно будет короче сдвигового варианта. Гениально... сам не додумался... Теперь и килобайта флеши хватит, за глаза. И ненамного-то оно медленнее. Но это если памяти не хватит - так там каждая таблица по 256 байт, немного. Теперь бы мне еще кто рассказал, каким методом я это сделал по той моей формуле (№3), чьего имени метод, чтобы разобраться и быстренько сделать как надо, а не как я делал. Подозревал Хартли, но кажется это не вполне оно. Вообще, задачка не совсем простая для этого камня, но, на мой взгляд, решаемая. Да мы ее щас сделаем сначала простой, а после вообще на СИ напишем. Истинно говорю вам, коллеги, пригодится еще многим из вас. А в чем прикол, юзать камень без умножителя ? Дык, кайф - когда заранее кажется, что оно вообще не просто не влезет, а раза в три ... А после все же утолкать и чтобы место для индикации еще осталось |
|
|
25.8.2010, 0:43
Сообщение
#56
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Хрустю попкорном Сейчас, VoJak подтянется, ветку прочитает и тоже чего-то скажет. Он цифровой фильтрацией занимался трошки, помнит много чего... Добрый вечер! Встречайте знакомого новичка. Добро пожаловать на Шарагу! Поправил коэффициенты в формуле №3: CODE формула №4 abs(sin)+abs(cos) + (1/4)*abs((sin-cos)) +(1/8)*(abs((5/2)*sin-cos)+abs(sin-(5/2)*cos)) Уважаемому VoJak респект за намек на то, что целочисленные дроби удобнее в работе... Умножения на константу частично заменены простыми сдвигами. Теперь можно попробовать сделать разбиение на 11.25 градусов вместо 22.5, или по 15 - тоже должно резко лучше стать. Но вот как это сделать без нудного перехода от моделирования с подбором коэффициентов? Может, это все же преобразование Хартли? кто-то имел с ним дело? Смущают эти непонятные 5/2... Или , если внести 1/8 в скобки - то 5/16 (с 1/8 вроде логично)... Литература как бы по теме: Цитата На рис. 17 приведены примеры преобразований Гильберта амплитудно- и частотно-модулированных сигналов, которые наглядно демонстрируют физический смысл преобразования -- идеальное детектирование сигналов. Прочитал. Нихрена не понял. результат видел, как получили - непонятно.
|
|
|
25.8.2010, 20:49
Сообщение
#57
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Вот книжку еще нарыл...
breisuyell_r__preobrazovanie_hartli__teorija_i_prilozhenija_.zip ( 1,87 мегабайт ) Кол-во скачиваний: 3 Тоже не понял толком физического смысла... Вчера смоделировал новую матрицу, уже на интервал 15° , то есть на 24 отвода как бы... В аналоговой форме это делается без проблем - всего одна RC цепочка на всю схему, не на каждый отвод. И можно получить на данной частоте целую кучу сдвинутых по фазе с равным интервалом... остальное -чисто резисторная матрица. То есть суммирования и вычитания, не более того. Что и вселяет надежу, что самый простенький PIC справится в конце концов с довольно точным преобразованием... Но еще в формулу не переводил пока... |
|
|
26.8.2010, 2:12
Сообщение
#58
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
1) делают БПФ от реальных отсчетов 2) умножать всё на 2, кроме нулевого бина , а все бины старше N\2 обнулить (формула 2.23) (примечание - можно и не умножать, если постоянки нету) 3) делать ОБПФ ....... неожиданно появятся комплексные отсчёты (это свойство такое у Фурье). Вот эти комплексные отсчеты и есть квадратуры I Q , из которых мгновенная амплитуда (к примеру по рис 17) рассчитывается. Смотрите картинки Ну , если это не по одной паре отсчетов вычислено - то не имеет смысла, надо мгновенно. А если по одной - то все варианты моделек у меня уже есть, начну выкладывать, только причесать нужно. И с квадраторами с корнем квадратным после, и с вышеописанным фазорасщепителем (матрицей). Реальные результаты в изделии ничем не отличаются, по большому счету. И это наводит на мысли. Даже более того, с фазорасщепителем вариант реагирует на замену неидеального фазовращателя на идеальный в заданном диапазоне аналогично квадратирующему... То есть когда в диапазоне всех гармоник фаза ровно на 90 повернута, то после преобразования получается чудная картинка - первая гармоника превратилась в постоянку, а все высшие на этой постоянке висят неискаженными... круто, хотя методы принципиально вроде разные... Меня бы кто ткнул носом, как по Хартли считать , может тогда хоть соображу, что делаю. А то результаты уже получил, платы трассирую - а что оно такое получилось, как всегда неясно. Хотя с другой стороны - формулу для 15-градусной матрицы я и так выведу, для 22.5 градусной же вывел и принцип даже понял примерно, коэффициенты есть уже... А после камню не все ли равно, чья там фамилия автора преобразований...Посчитает по-любому... |
|
|
Гость_MrYuran_* |
26.8.2010, 8:44
Сообщение
#59
|
Гости |
Тоже не понял толком физического смысла... В ЦОС можно чудеса творить, физически нереализуемые. Так что во всём искать физический смысл не стоит. Я вот тоже привык этот самый смысл искать и на пальцах для себя изображать, поэтому и сдал ЦОС на 3-, хотя желающим ставили 3 автоматом без экзамена (провели прореживание ) |
|
|
26.8.2010, 11:50
Сообщение
#60
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
В ЦОС можно чудеса творить, физически нереализуемые. Так что во всём искать физический смысл не стоит. Я вот тоже привык этот самый смысл искать и на пальцах для себя изображать, поэтому и сдал ЦОС на 3-, хотя желающим ставили 3 автоматом без экзамена (провели прореживание ) Я думаю, физический смысл всегда есть, что и привлекает... Если формулы правильные... Вышеприведенные мной картинки выпрямителя, например, изначально получались суммированием ряда синусов, равномерно сдвинутых по фазе , ну и взятых по абсолютному значению. То есть на общем графике получалась такая себе сетка, каждый синус в свой цвет. А после сокращения формул и приведения к удобному виду, сетка получилась точно такая же, но участки ее перекрасились - сигналы стали ломаными, переходя по ячейкам в другом порядке, но суммарная картинка та же, если бы не красил в разные цвета - не заметил бы разницы. Ну и в конце оказалось, что все это упрощается от сложения много одинаковых - до сложения меньшего количества разных по амплитуде сигналов. То есть начиная с аналога, перейдя к формуле и сократив ее - можно и к аналогу вернуться опять и его тоже сократить. |
|
|
Текстовая версия | Сейчас: 29.3.2024, 9:49 |