кто программирует на младших PICах?, нужна помощь, платная... |
Здравствуйте, гость ( Вход | Регистрация )
кто программирует на младших PICах?, нужна помощь, платная... |
20.8.2010, 14:50
Сообщение
#1
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Собственно, сабж.
Есть небольшая задачка, как раз для малых PIC-ов. Алгоритм имеется. Отмоделирован , работает. если что не так с алгоритмом - отвечаю я. если кто еще умеет на АСМ - я был бы спокойнее за надежность решения. Прерываний нет, ветвлений по условию - и то нет. Задача линейная... Просто мне, как совсем новичку - рано еще... Схема, плата - сделаю, этим отвлекать не стану... ну, обсудим... PS могут потребоваться небольшие доработки по ходу, типа небольшого интегрирования, ну простенький КИХ фильтрик, возможно, придется добавить... Но все коэффициенты будут =1, и отводов мало, так что проблем не ожидается... Пишите в личку, если есть время у кого, можно и в скайп - обговорить условия и прочее... |
|
|
20.8.2010, 18:12
Сообщение
#2
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Пишите в личку, если есть время у кого, можно и в скайп - обговорить условия и прочее... А можно несколько иначе? Вы выкладываете алгоритм и мы вместе с Вами пишем программку. Я так думаю, что без прерываний там ничего не выйдет... Заодно и с этим вопросом разберемся. |
|
|
20.8.2010, 20:06
Сообщение
#3
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
|
|
|
20.8.2010, 22:47
Сообщение
#4
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
Да есть в общем-то... для пущей конспирации он в разделе "Остальное".
|
|
|
20.8.2010, 23:30
Сообщение
#5
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
А можно несколько иначе? Вы выкладываете алгоритм и мы вместе с Вами пишем программку. Я так думаю, что без прерываний там ничего не выйдет... Заодно и с этим вопросом разберемся. Не, без прерываний, если только не иметь в виду что-то типа служебных каких-то, не от алгоритма зависящих... А-а-а, понял... Да, вы правы, кое-что может и придется использовать, точно. Недавно же обсуждали в соседней теме про АЦП... Да, если бы кто-то делал это со с мной вместе - было бы лучше. Но боюсь, уровень мой на данный момент - чисто по алгоритму, программисты обычно не жалуются , вроде на этом уровне не раздражаю тупостью. Даже вот подготовился, обсчитал извлечение корня в экселе, на сходимость и минимум операций деления... Поверил весь диапазон входных значений, константы первого приближения и прочее... Короче, помогать буду активно... Где посидеть - найдем, но там конкретная типа халтурка с продолжением... То есть уже отмоделированное все , и как-то надо не очень медленно все это загнать в камень. То есть в продукте конечно поучаствовать хотелось бы, для контроля и надежности и обучения. Но после его все же хочется купить, а не на халяву получить... Ну или покупать , еще лучше...как обычно делают с камнями... |
|
|
21.8.2010, 21:50
Сообщение
#6
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Но после его все же хочется купить, а не на халяву получить... Ну или покупать , еще лучше...как обычно делают с камнями... Не говорите ерундой. Вам по-настоящему надо всего два-три псевдо занятия, а дальше Вы все сделаете самостоятельно. По неотложным проблемам существует Skype. |
|
|
22.8.2010, 0:08
Сообщение
#7
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Не говорите ерундой. Вам по-настоящему надо всего два-три псевдо занятия, а дальше Вы все сделаете самостоятельно. По неотложным проблемам существует Skype. Да как-то неудобно отрывать время в коммерческих целЯх... ладно бы чисто познавательно, но я ж с этих занятий потом иметь буду... тем более, задача конкретно уже для дела. насчет двух-трех псевдозанятий - согласен... |
|
|
22.8.2010, 5:24
Сообщение
#8
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
через жопу сделана работа со знаковыми числами. Просто своя специфика. Carry флаг показывает наеборот переполнения-от этого усложнения. Тем, кто осваивает пиковский асм. Если быстро ответите на вопрос "Как поменять местами значения, находящиеся в W и каком-нить регистре F без участия третьего операнда?", можете смело начинать что-то пиСать. Окно прорублено. |
|
|
22.8.2010, 15:51
Сообщение
#9
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
И всё-таки, какова задача (не нашёл этого в теме)? Взять два синуса с аналоговых входов, оцифровать от середины диапазона, считая ее нулем (то есть вычислить реальные мгновенные значения), получить корень квадратный из суммы квадратов по каждому отсчету , результат сравнить с константой - если меньше - выдать на ШИМ полное заполнение, если больше - константу поделить на полученное значение и выдать на ШИМ, так чтобы при например, полученном значении вдвое больше константы - шим генерировал бы скважность 2, то есть обратная пропорция. Значение перед вычислением заполнения ШИМ немного сгладить, простое усреднение нескольких отсчетов. Возможно и не понадобится. В основном, это все. Сколько денег? PIC12F683, PIC12F615 - что-то вроде этого. Камень не дороже доллара желательно. |
|
|
22.8.2010, 17:03
Сообщение
#10
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
22.8.2010, 17:45
Сообщение
#11
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Это место малость не понял. Еще раз, если можно и помедленнее. Я заппписую (С)... Там 10 битный АЦП, но у него явного нуля нету, как бы однополярный. Потому циферку 512 будем считать нулем... Однако же, отрицательные значения при этом будут неправильные получаться, нужно преобразовать дополнительный код как-то... То есть просто считать старший разряд знаком не получится почему-то... |
|
|
22.8.2010, 18:29
Сообщение
#12
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Там 10 битный АЦП, но у него явного нуля нету, как бы однополярный. Потому циферку 512 будем считать нулем... Однако же, отрицательные значения при этом будут неправильные получаться, нужно преобразовать дополнительный код как-то... То есть просто считать старший разряд знаком не получится почему-то... Просто так считать старший разряд знаковым низзя. К примеру, число -512 в двоичной системе при 16 разрядной сетке будет выглядеть как: 1110 0000 0000 0000 -здесь 1 в старшем разряде - это минус. Вычитание при этом заменяется сложением. Поставим эксперимент. -512+1023=+511 Итак: 1111 1110 0000 0000 - это -512 + 0000 0011 1111 1111 - это 1023 = 0000 0001 1111 1111 = 01ff = 511 Аналогично и в другую сторону. -512+230=-282 Проверяем: 1111 1110 0000 0000 - это -512 + 0000 0000 1110 0110 - это 230 = 1111 1110 1110 0110 - это некое отрицательное число, поскольку старший бит 1. Чтобы взять его модуль, надо сделать следующее: 1. Инвертируем число поразрядно: 0000 0001 0001 1001 2. Прибавляем к нему 1, т. е. дополняем до 2-х: 0000 0001 0001 1010 = 11А= 282, что и требовалось. |
|
|
22.8.2010, 18:32
Сообщение
#13
|
|
Активный участник Группа: Пользователи Сообщений: 40 Регистрация: 30.7.2010 Пользователь №: 189 |
Есть PIC12F675, есть программатор для него. Сколько платите, могу реально сделать, но делать бесплатно неинтересно. А много просить не хочется. Конфликт интересов елы палы. Работа недорогая, но затеваться не хочется. Как прижмет, ортодокс, конечно сделаю и пришлю Вам и чипы и исходники. Но это если совсем уж никто не сделает. Считайте меня запасным вариантом для своей разработки. Как американцы любят говорить план B
|
|
|
22.8.2010, 18:35
Сообщение
#14
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Просто так считать старший разряд знаковым низзя. Ну я об этом же и говорю. Я помню, как все это делается, только МК боюсь. Есть PIC12F675, есть программатор для него. Сколько платите, могу реально сделать, но делать бесплатно неинтересно. А много просить не хочется. Конфликт интересов елы палы. Работа недорогая, но затеваться не хочется. Как прижмет, ортодокс, конечно сделаю и пришлю Вам и чипы и исходники. Но это если совсем уж никто не сделает. Считайте меня запасным вариантом для своей разработки. Как американцы любят говорить план B Меня устраивает общий расклад....Но сумму вам нужно придумать как-то самому... По любому, варианты пригодятся... потому что - тут сразу говорю - есть шкурный интерес , в смысле научиться хочу. Что ж я буду каждый раз людей дергать из за таких задач-то...неудобно. У PIC 12F675 не нашел ШИМ - модуля... Программно, что ли его делать? Некошерно, наверное, это ж сердце как бы... Таймер-то восьмибитный есть, а 8 бит исходя из тактовой там и планировалось на вывод. ну, не знаю... |
|
|
22.8.2010, 18:44
Сообщение
#15
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
22.8.2010, 18:46
Сообщение
#16
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Бояться не надо. Берете MPLAB - там все просто. Пишете код расчета и прогоняете в симуляторе. А иначе никак... Ладно, где бы еще внятное описание работы с MPLAB по русски найти...ага, нашел чего-то...читаю... Последний с сайта поставил уже... только что не пристегивал PICkit3 (не знаю, чего третий взял, для моих задач сто лет второго бы хватило.. парень там как узнал что силовик, так сразу и предложил лучше второй) Да, и еще - какой ASM ставить? Как пристегивать? Предпочтение тому, для которого описание поподробнее найдется. И который по PICи заточен, конечно Я на СИ не смогу, мне надо каждый бит под контролем... Чтобы оно без разрешения и взбзднуть не могло само... Да и нет в СИ такого корня квадратного быстрого. как я себе уже спроектировал для ASM... Собственно, сотню - две команд на ассемблере чтож, не потяну что ли? |
|
|
22.8.2010, 18:58
Сообщение
#17
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
У PIC 12F675 не нашел ШИМ - модуля... Программно, что ли его делать? Некошерно, наверное, это ж сердце как Аааа... у P89LPC917 не только ШИМ, а и шустрый восьмибитный ЦАП есть. Всё-таки что-то клонит туда и клонит... как это преодолеть в сторону пиков, дал бы кто пинка? |
|
|
22.8.2010, 18:58
Сообщение
#18
|
|
Активный участник Группа: Пользователи Сообщений: 41 Регистрация: 15.8.2010 Из: SPb Пользователь №: 197 |
|
|
|
22.8.2010, 19:01
Сообщение
#19
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Я бы рекомендовал вообще отказаться от корня. Операция довольно длительная, а толку в данном случае нет. Вам ведь только сравнивать надо? Сравнивайте с константой в квадрате. Мне надо извлекать корень. И я это делаю за 4 деления и 4 суммы и 4 сдвига на 1 бит. Должно успевать вроде бы. Можно деления в принципе на умножения заменить, но выигрыша вроде нет особого. У деления сходимость выше, меньше циклов. за 4 уверенно и с запасом. Я делаю по принципу преобразования Фурье. А по Хартли с "CAS"-ами его у меня и на ОУ уже есть, и работает. Но там два корпуса 4*ОУ, один точный конденсатор и штук 20 резисторов... аж трех разных номиналов... Ну, фазовая матрица, на 16 точек в эквиваленте... вообще-то 8, а еще 8 интерполяция, но ничего... |
|
|
22.8.2010, 19:03
Сообщение
#20
|
|
Активный участник Группа: Пользователи Сообщений: 41 Регистрация: 15.8.2010 Из: SPb Пользователь №: 197 |
Мне надо извлекать корень. Я делаю по принципу преобразования Фурье. А по Хартли у меня и на ОУ уже есть, и работает. Но там два корпуса 4*ОУ, один точный конденсатор и штук 20 резисторов... аж трех разных номиналов... Ну, фазовая матрица, на 16 точек в эквиваленте... вообще-то 8, а еще 8 интерполяция, но ничего... А сколько выборок в секунду нужно? ПИК вообще потянет такое? |
|
|
Текстовая версия | Сейчас: 29.3.2024, 11:42 |