Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: кто программирует на младших PICах?
Шарага > Soft - НЕ железо > Программирование МК
Страницы: 1, 2
orthodox
Собственно, сабж.
Есть небольшая задачка, как раз для малых PIC-ов.
Алгоритм имеется. Отмоделирован , работает.
если что не так с алгоритмом - отвечаю я.
если кто еще умеет на АСМ - я был бы спокойнее за надежность решения.
Прерываний нет, ветвлений по условию - и то нет. Задача линейная...
Просто мне, как совсем новичку - рано еще...

Схема, плата - сделаю, этим отвлекать не стану...
ну, обсудим...

PS могут потребоваться небольшие доработки по ходу, типа небольшого
интегрирования, ну простенький КИХ фильтрик, возможно, придется добавить...
Но все коэффициенты будут =1, и отводов мало, так что проблем не ожидается...

Пишите в личку, если есть время у кого, можно и в скайп - обговорить условия и прочее...

Прохожий
Цитата(orthodox @ 20.8.2010, 16:50) *
Пишите в личку, если есть время у кого, можно и в скайп - обговорить условия и прочее...

А можно несколько иначе?
Вы выкладываете алгоритм и мы вместе с Вами пишем программку.
Я так думаю, что без прерываний там ничего не выйдет...
Заодно и с этим вопросом разберемся.
_pasha
Цитата(Прохожий @ 20.8.2010, 18:12) *
Вы выкладываете алгоритм и мы вместе с Вами пишем программку.

плюс пицот!
А есть здесь вариант закрытого от кетайсев форума, жалко все-таки ...?
Harbinger
Да есть в общем-то... для пущей конспирации он в разделе "Остальное". smile.gif
orthodox
Цитата(Прохожий @ 20.8.2010, 19:12) *
А можно несколько иначе?
Вы выкладываете алгоритм и мы вместе с Вами пишем программку.
Я так думаю, что без прерываний там ничего не выйдет...
Заодно и с этим вопросом разберемся.


Не, без прерываний, если только не иметь в виду что-то типа служебных каких-то, не от алгоритма зависящих...
А-а-а, понял...
Да, вы правы, кое-что может и придется использовать, точно. Недавно же обсуждали в соседней теме про АЦП...

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

Где посидеть - найдем, но там конкретная типа халтурка с продолжением...
То есть уже отмоделированное все , и как-то надо не очень медленно все это загнать в камень.
То есть в продукте конечно поучаствовать хотелось бы, для контроля и надежности и обучения.
Но после его все же хочется купить, а не на халяву получить...
Ну или покупать , еще лучше...как обычно делают с камнями...
Прохожий
Цитата(orthodox @ 21.8.2010, 1:30) *
Но после его все же хочется купить, а не на халяву получить...
Ну или покупать , еще лучше...как обычно делают с камнями...

Не говорите ерундой.
Вам по-настоящему надо всего два-три псевдо занятия, а дальше Вы все сделаете самостоятельно.
По неотложным проблемам существует Skype.
orthodox
Цитата(Прохожий @ 21.8.2010, 22:50) *
Не говорите ерундой.
Вам по-настоящему надо всего два-три псевдо занятия, а дальше Вы все сделаете самостоятельно.
По неотложным проблемам существует Skype.

Да как-то неудобно отрывать время в коммерческих целЯх...
ладно бы чисто познавательно, но я ж с этих занятий потом иметь буду...
тем более, задача конкретно уже для дела.

насчет двух-трех псевдозанятий - согласен...
_pasha
Цитата(GuruKiller @ 22.8.2010, 0:01) *
через жопу сделана работа со знаковыми числами.

Просто своя специфика. Carry флаг показывает наеборот переполнения-от этого усложнения.
Тем, кто осваивает пиковский асм. Если быстро ответите на вопрос "Как поменять местами значения, находящиеся в W и каком-нить регистре F без участия третьего операнда?", можете смело начинать что-то пиСать. Окно прорублено. smile.gif
orthodox
Цитата(YIG @ 22.8.2010, 16:06) *
И всё-таки, какова задача (не нашёл этого в теме)?

Взять два синуса с аналоговых входов, оцифровать от середины диапазона,
считая ее нулем (то есть вычислить реальные мгновенные значения), получить корень квадратный из суммы квадратов по каждому отсчету , результат сравнить с константой - если меньше - выдать на ШИМ полное заполнение,
если больше - константу поделить на полученное значение и выдать на ШИМ, так чтобы при
например, полученном значении вдвое больше константы - шим генерировал бы скважность 2,
то есть обратная пропорция.


Значение перед вычислением заполнения ШИМ немного сгладить, простое усреднение нескольких отсчетов.
Возможно и не понадобится.

В основном, это все. Сколько денег?

PIC12F683, PIC12F615 - что-то вроде этого.
Камень не дороже доллара желательно.
Прохожий
Цитата(orthodox @ 22.8.2010, 17:51) *
Взять два синуса с аналоговых входов, оцифровать от середины диапазона,
считая ее нулем ...

Это место малость не понял.
Еще раз, если можно и помедленнее.
Я заппписую (С)...
orthodox
Цитата(Прохожий @ 22.8.2010, 17:32) *
Это место малость не понял.
Еще раз, если можно и помедленнее.
Я заппписую (С)...

Там 10 битный АЦП, но у него явного нуля нету, как бы однополярный.
Потому циферку 512 будем считать нулем...
Однако же, отрицательные значения при этом будут
неправильные получаться, нужно преобразовать дополнительный код как-то...
То есть просто считать старший разряд знаком не получится почему-то...
Прохожий
Цитата(orthodox @ 22.8.2010, 19:45) *
Там 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, что и требовалось.

novichok
Есть PIC12F675, есть программатор для него. Сколько платите, могу реально сделать, но делать бесплатно неинтересно. А много просить не хочется. Конфликт интересов елы палы. Работа недорогая, но затеваться не хочется. Как прижмет, ортодокс, конечно сделаю и пришлю Вам и чипы и исходники. Но это если совсем уж никто не сделает. Считайте меня запасным вариантом для своей разработки. Как американцы любят говорить план B smile.gif
orthodox
Цитата(Прохожий @ 22.8.2010, 19:29) *
Просто так считать старший разряд знаковым низзя.

Ну я об этом же и говорю.
Я помню, как все это делается, только МК боюсь.

Цитата(novichok @ 22.8.2010, 19:32) *
Есть PIC12F675, есть программатор для него. Сколько платите, могу реально сделать, но делать бесплатно неинтересно. А много просить не хочется. Конфликт интересов елы палы. Работа недорогая, но затеваться не хочется. Как прижмет, ортодокс, конечно сделаю и пришлю Вам и чипы и исходники. Но это если совсем уж никто не сделает. Считайте меня запасным вариантом для своей разработки. Как американцы любят говорить план B smile.gif

Меня устраивает общий расклад....Но сумму вам нужно придумать как-то самому...
По любому, варианты пригодятся...

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

У PIC 12F675 не нашел ШИМ - модуля... Программно, что ли его делать? Некошерно, наверное, это ж сердце как бы...
Таймер-то восьмибитный есть, а 8 бит исходя из тактовой там и планировалось на вывод. ну, не знаю...
Прохожий
Цитата(orthodox @ 22.8.2010, 20:35) *
Ну я об этом же и говорю.
Я помню, как все это делается, только МК боюсь.

Бояться не надо.
Берете MPLAB - там все просто.
Пишете код расчета и прогоняете в симуляторе.
А иначе никак...
orthodox
Цитата(Прохожий @ 22.8.2010, 19:44) *
Бояться не надо.
Берете MPLAB - там все просто.
Пишете код расчета и прогоняете в симуляторе.
А иначе никак...

Ладно, где бы еще внятное описание работы с MPLAB по русски найти...ага, нашел чего-то...читаю...
Последний с сайта поставил уже... только что не пристегивал PICkit3 (не знаю, чего третий взял, для моих задач сто лет второго бы хватило..
парень там как узнал что силовик, так сразу и предложил лучше второй)

Да, и еще - какой ASM ставить? Как пристегивать?
Предпочтение тому, для которого описание поподробнее найдется.
И который по PICи заточен, конечно smile.gif
Я на СИ не смогу, мне надо каждый бит под контролем...
Чтобы оно без разрешения и взбзднуть не могло само...

Да и нет в СИ такого корня квадратного быстрого. как я себе уже спроектировал для ASM...

Собственно, сотню - две команд на ассемблере чтож, не потяну что ли?
Harbinger
Цитата(orthodox @ 22.8.2010, 19:35) *
У PIC 12F675 не нашел ШИМ - модуля... Программно, что ли его делать? Некошерно, наверное, это ж сердце как

Аааа... у P89LPC917 не только ШИМ, а и шустрый восьмибитный ЦАП есть. Всё-таки что-то клонит туда и клонит... как это преодолеть в сторону пиков, дал бы кто пинка? wink.gif
tester
Цитата(orthodox @ 22.8.2010, 20:46) *
Да и нет в СИ такого корня квадратного быстрого. как я себе уже спроектировал для ASM...

Я бы рекомендовал вообще отказаться от корня. Операция довольно длительная, а толку в данном случае нет. Вам ведь только сравнивать надо? Сравнивайте с константой в квадрате.
orthodox
Цитата(tester @ 22.8.2010, 19:58) *
Я бы рекомендовал вообще отказаться от корня. Операция довольно длительная, а толку в данном случае нет. Вам ведь только сравнивать надо? Сравнивайте с константой в квадрате.

Мне надо извлекать корень.
И я это делаю за 4 деления и 4 суммы и 4 сдвига на 1 бит.
Должно успевать вроде бы.
Можно деления в принципе на умножения заменить, но выигрыша вроде нет особого.
У деления сходимость выше, меньше циклов. за 4 уверенно и с запасом.
Я делаю по принципу преобразования Фурье.
А по Хартли с "CAS"-ами его у меня и на ОУ уже есть, и работает.
Но там два корпуса 4*ОУ, один точный конденсатор и штук
20 резисторов... аж трех разных номиналов...

Ну, фазовая матрица, на 16 точек в эквиваленте... вообще-то 8, а еще 8 интерполяция, но ничего...
tester
Цитата(orthodox @ 22.8.2010, 21:01) *
Мне надо извлекать корень.
Я делаю по принципу преобразования Фурье.
А по Хартли у меня и на ОУ уже есть, и работает.
Но там два корпуса 4*ОУ, один точный конденсатор и штук
20 резисторов... аж трех разных номиналов...

Ну, фазовая матрица, на 16 точек в эквиваленте... вообще-то 8, а еще 8 интерполяция, но ничего...


А сколько выборок в секунду нужно? ПИК вообще потянет такое?
orthodox
Цитата(Harbinger @ 22.8.2010, 19:58) *
Всё-таки что-то клонит туда и клонит... как это преодолеть в сторону пиков, дал бы кто пинка? wink.gif

Приезжайте в Скайп, дам.

...8 битного АЦП маловато будет...

Цитата(tester @ 22.8.2010, 20:03) *
А сколько выборок в секунду нужно? ПИК вообще потянет такое?


В общем, планировали 10-15 киловыборок.
Но может и опущусь ниже по частоте, если не впишется.
Идеально было бы 25-30 Квыборок...Эквивалентно частоте ШИМ на выходе...
Шансы есть...
orthodox
Описание на MPLAB нашел.
Очень подробно переведены подсказки меню на все кнопки.
По делу - ничего, это наверное секрет и от автора описания...

Попробовал поковыряться в MPLAB.
Очень удобная среда.
особенно проджект визард.
Восхитил просто.
При запуске даже требует указать камень, на котором будешь программировать,
и после создания проекта тебе предоставляется возможность хедер-файл на этот камень где-нибудь найти и присоединить к проекту... Или другой файл... Охренительный сервис.
Создает аж штук 6 совершенно пустых псевдопапок, невзирая на ответы...
Действительно, Визард==волшебник...

Интересно, а на куя от тогда спрашивает?
Знаю! Чтобы я сам осознал, что хочу.
Любопытно, симуляцию тоже на бумажке надо будет делать самому?
Как тогда лучше разлиновать бумажку?

Дописано позже:
Если ничего не помогает, надо читать инструкции.
Вот тут, на микрочип ру , их море...

И по IDE , и по ASM - все что охота и на русском...
Только не работает ни одна ссылка, к сожалению, а так - отличная подборка...
Была бы...

кстати, насчет нерабочих ссылок - ужли началось?

PS Соврал насчет нерабочих ссылок...
ссылка "цены" на странице с литературой, отсылающая на источники питания Минвелл - целая.
Пусть обрушится мир, но продажи должны продолжаться.
А что, ООО "Микро-Чип" - правда солидная фирма или только прикидываются?
Прохожий
Цитата(orthodox @ 22.8.2010, 23:19) *
Описание на MPLAB нашел...

Вы не расстраивайтесь.
Эта болезнь известна.
Типовое ох..ение от нового софта.
Никто не говорил, что будет легко...
Без мата и ломания клавиатуры ничего не выйдет.
Визард в Вашем случае не нужен.
Постараюсь сделать для Вас микроинструкцию.
Но нужно время.
И тип МК конкретный.
orthodox
Цитата(Прохожий @ 22.8.2010, 22:30) *
Без мата и ломания клавиатуры ничего не выйдет.

Жаль, но я готов и на это.
В сколько этажей нужен мат ?
Клавиатур на складе около полутора сотен,
хотя я берег их для других целей, но раз надо - значит. надо.


Цитата
Визард в Вашем случае не нужен.
Уверен, что можно найти случай, когда такой визард нужен.
Но не уверен, что разработчики программы знают хоть один такой случай...

Цитата
Постараюсь сделать для Вас микроинструкцию.
Но нужно время.
И тип МК конкретный.

Не пугайте меня...
Что, для каждого типа МК свой подход?

Наверное, тогда удобнее писать в нотепаде и компилировать из командной строки...

PS Еще несколько неофициальных. классных инструкций пробежал...
Вплоть до полного несовпадения пунктов меню в инструкции и на экране...

Может, мне будет проще понимать. если эта пое..нь и окажется тупым оконным имитатором командной строки с встроенным нотепадом?
Я тогда хоть не буду ожидать от этой жутко интеллектуальной х-ни чего-то типа SolidWorks ? где все делается и понятно даже ребенку.
Прохожий
Цитата(orthodox @ 22.8.2010, 23:54) *
Жаль, но я готов и на это.
В сколько этажей нужен мат ?
Клавиатур на складе около полутора сотен,
хотя я берег их для других целей, но раз надо - значит. надо.

Ну вот все готово к программированию.

Цитата(orthodox @ 22.8.2010, 23:54) *
Не пугайте меня...
Что, для каждого типа МК свой подход?

Нет.
Нужна обстановка, максимально приближенная к боевой.
orthodox
Цитата(GuruKiller @ 22.8.2010, 23:03) *
Harbinger писал про ЦАП.

Там его нету, но АЦП - 8 битный, коммутатор 4 входа. Он опечатался.
Прохожий
Цитата(GuruKiller @ 23.8.2010, 0:03) *
Моё мнение. PIC12 не потянет, PIC24 не вписывается в бюджет, да и все процы дороже бюджета. STM8 не знаю по мощи, но он есть в районе 1$, однако он однозначно уступает LPC11xx по мощи. Из недостатков LPC11 только 3V питалово (иногда это достоинство) и отсутствие опоры, то есть АЦП будет мерить с точностью 3V питалова, Хотя проц можно запитать от опоры с током 10 мА и работать не на максимальной частоте. AVR8 уже не советую по нескольким причинам.

У LPC1111 все хорошо, кроме одного - это ARM, насколько мне склероз не изменяет.
А это значит, что нормальной IDE под него нет. Не ворованной.
Можно, конечно, попробовать uVision, но там уж сильно функционал урезанный для бесплатной версии.
orthodox
Цитата(GuruKiller @ 22.8.2010, 23:03) *
А вот тот же LPC1111 стоит в районе 30-ти (даже дешевле видел), то есть 1 бакс, который есть в "бюджете".

Да, и наверное он такой мощный что можно и PWM программно имитировать...
своего отдельно там нету. Разве что опять таки использовать таймеры и как-то выкручиваться...

Цитата
Моё мнение. PIC12 не потянет, PIC24 не вписывается в бюджет, да и все процы дороже бюджета.


PIC 16 еще есть пара позиций, в цене можно подвинуть чуток, $1 поможет ведь что-то другое сэкономить в схеме?
Глядишь, и набежит на камень подороже. Возможно, ошибка в том, что я думал, на МК дешевле и меньше схема.
Аналогово я подобное примерно за эти деньги решаю. ну, чуть дешевле, может...

Что до 16 разрядного - я чередую 8 и 16 разрядные операции, последних - относительно мало.
Пока порядка от 100 до 200 команд asm должно получиться. то есть от 20 до 40 мкс.
Возможно, я ошибся, поглядим. Если так - перейду от Фурье к Хартли, там проще - сложения в основном и немного умножений на константу. Последние можно даже таблично сделать. Для 8 бит-то...
orthodox
Цитата(GuruKiller @ 22.8.2010, 23:16) *
Если это о трёх XOR, то чисто математический трюк, который ни разу мне не пришлось заюзать, хотя я любитель асма(ов) разных процов. У единственного семейства, в котором этот трюк делается с малой кровью - AVR ни разу не возникла в нём необходимость. Пусть это будет не жопа, а задница, чтоб не обидно было.

Оппа... Я было ответил насчет XOR, но застеснялся и стер...
руки-то помнят...

Цитата(GuruKiller @ 22.8.2010, 23:20) *
Там 6 PWM-ов, которые по возможностям покроют всё на свете.

Серьезно? наверное, упоминаются далее по тексту даташита...
Нажмите для просмотра прикрепленного файла
Только не этого, наверное есть еще даташиты, с продвинутыми возможностями отдельно.
Прохожий
Цитата(orthodox @ 23.8.2010, 0:17) *
Да, и наверное он такой мощный что можно и PWM программно имитировать...
своего отдельно там нету. Разве что опять таки использовать таймеры и как-то выкручиваться...



PIC 16 еще есть пара позиций, в цене можно подвинуть чуток, $1 поможет ведь что-то другое сэкономить в схеме?
Глядишь, и набежит на камень подороже. Возможно, ошибка в том, что я думал, на МК дешевле и меньше схема.
Аналогово я подобное примерно за эти деньги решаю. ну, чуть дешевле, может...

Что до 16 разрядного - я чередую 8 и 16 разрядные операции, последних - относительно мало.
Пока порядка от 100 до 200 команд asm должно получиться. то есть от 20 до 40 мкс.
Возможно, я ошибся, поглядим. Если так - перейду от Фурье к Хартли, там проще - сложения в основном и немного умножений на константу. Последние можно даже таблично сделать. Для 8 бит-то...

А Вы папочку завели?
PicProj называется.
В ней надо завести еще одну папочку с названием Вашего проекта.
SinusDetect, к примеру.
И МК, если можно.
Тогда можно будет с примерами.


Цитата(GuruKiller @ 23.8.2010, 0:20) *
Да АРМ, со всей его мощью системы команд и скорострельностью в 32-битных расчётах, и даже с 64-битными накопителями.

Да, но там уже С понадобится. А по условиям задачи это не кошерно.
Цитата(GuruKiller @ 23.8.2010, 0:20) *
IDE. Все незамороченные юзают IAR, CW, Keil и пр. Остальные идут куда подальше smile.gif Или плетутся далеко за хвостом паровоза. Удачи им.

Правильно. Это когда трохи и для сэбе.
А когда человек деньги собрался зарабатывать, то могут и обобрать ненароком...
orthodox
Цитата(Прохожий @ 22.8.2010, 23:26) *
А Вы папочку завели?
PicProj называется.
В ней надо завести еще одну папочку с названием Вашего проекта.
SinusDetect, к примеру.
И МК, если можно.
Тогда можно будет с примерами.

Папка называется _1_PIC , а проект _1pic12f629 ...
Сейчас исправлю, папка _1_PIC , а проект _12F615 , тогда уже смысл будет какой-то...

Если я в проект хедеры должен добавлять ручками все равно, то на хер вообще эти визарды?
И на хер они спрашивают, какой камень нужен?
Хедер, кстати, нашел, в папке MPASM, и куда его теперь?
Цитата(Прохожий @ 22.8.2010, 23:31) *
Да, но там уже С понадобится. А по условиям задачи это не кошерно.

ну почему? такую скорость чтобы посадить, можно и на Си .
Если бы был двухьядерный пентиум , то пришлось бы реально тормозной язык искать,
а там хватит и Си.


Цитата
Правильно. Это когда трохи и для сэбе.
А когда человек деньги собрался зарабатывать, то могут и обобрать ненароком...

Да вряд ли. Разве что эти камни не защищены от взлома кода...
Или сами пишут, на чем он сделан, в незащищенной области...
orthodox
Цитата(GuruKiller @ 22.8.2010, 23:42) *
Чуть ошибся в худшую сторону. Есть 6 32-битных ШИМов + 5 16-битных. Это на кристалле. На разных корпусах не все выводы выходят. CTххBх_MATх - выходы ШИМов. HVQFN33 имеет меньше всего выводов (но корпус имхо удобный) и у него 6 32-битных пинов и 3 16-битных. Реально выводов MATx даже больше, но насколько я успел прочитать описание таймеров (в юзер мануале) канал 0 (возможно) не используется для вывода, он должен определять период ШИМа. Во всяком случае так было в LPC2xxx. Период вообще выбирается абсолютно любой с точностью до тика, а не как у некоторых 8/9/10 бит.

Где глянуть на это все?
есть даташит для продвинутых?
в 1111 что я положил - не нашел про PWM.
Выводы MAT нашел сразу, и сразу спросил - будем таймеры вместо ШИМ использовать?
Наверняка можно связать пару штук и для ШИМ и более сложной работы, чем ШИМ ... Но они не ШИМ все же.
orthodox
Цитата(GuruKiller @ 22.8.2010, 23:47) *
На сайте nxp.com
или поиском в гугле
http://www.google.ru/search?q=user.manual....=utf-8&aq=t
у меня 3-я ссылка как раз с nxp.com

Этот даташит я и выложил выше...
Там только таймеры.
Я думал, есть еще какой-то.
таймеры и в PIC программируются до тика, это обычно.
Но сделать ШИМ их надо пару. И программные выкрутасы...

Цитата(GuruKiller @ 22.8.2010, 23:47) *
Си для ARM-а и на мощном проце, с которых только познакомился = сам бох велел. Некошерно выжимать из 1 MIPS-проца 5 MIPS-ов долгим битьём головы об стену.

В избранном 12f615 для первой пробы 4 MIPS
Прохожий
Цитата(orthodox @ 23.8.2010, 0:32) *
Папка называется _1_PIC , а проект _1pic12f629

Заходим в папку C:\Program Files\Microchip\MPASM Suite\Template\Code и переписываем файл 12F629TEMP.ASM в папку с проектом.
Переименовываем его так, как надо.
В Вашем случае это будет единственный файл в проекте.
В меню View жмем кнопку Project.
В открывшемся окне жмем Sourse Files и добавляем туда переименованный файл.
Проверяем Configure->Select Device. Там должен быть PIC12F629.
Так же проверяем Project->Select Language Toolsuite.
Должно быть Microchip MPASM Toolsuite.
В меню Project->Build Options в ниспадающем меню жмем Project.
И настраиваем директории.
Выходная папка и рабочая папка - это папки с Вашим проектом.
Остальное значения для Вас не имеет. Это для более сложных случаев.
Далее жмем меню Debugger->Select Tool и выбираем MPLAB SIM.
Если я Вас не обманул, то далее давим Project-> Build All.
Ваш первый проект построен.
orthodox
Цитата(Прохожий @ 23.8.2010, 0:01) *
Заходим в папку C:\Program Files\Microchip\MPASM Suite\Template\Code и переписываем файл 12F629TEMP.ASM в папку с проектом.
Переименовываем его так, как надо.
В Вашем случае это будет единственный файл в проекте.
В меню View жмем кнопку Project.
В открывшемся окне жмем Sourse Files и добавляем туда переименованный файл.
Проверяем Configure->Select Device. Там должен быть PIC12F629.
Так же проверяем Project->Select Language Toolsuite.
Должно быть Microchip MPASM Toolsuite.
В меню Project->Build Options в ниспадающем меню жмем Project.
И настраиваем директории.
Выходная папка и рабочая папка - это папки с Вашим проектом.
Остальное значения для Вас не имеет. Это для более сложных случаев.
Далее жмем меню Debugger->Select Tool и выбираем MPLAB SIM.
Если я Вас не обманул, то далее давим Project-> Build All.
Ваш первый проект построен.

Щас все сделаю...
А что с хедером? переписывать туда в папку или как его вообще приаттачить-то?
найти я его нашел...
Прохожий
Цитата(orthodox @ 23.8.2010, 1:07) *
Щас все сделаю...
А что с хедером? переписывать туда в папку или как его вообще приаттачить-то?
найти я его нашел...

Не надо.
Внимательно просмотрите шаблон.
Там Ваш хедер упоминается явно.
orthodox
Цитата(Прохожий @ 23.8.2010, 0:10) *
Не надо.
Внимательно просмотрите шаблон.
Там Ваш хедер упоминается явно.

Именно что упоминается.
А пути к нему я не задавал, так может его в папку перетащить?
откуда она его возьмет-то? на С: диск вообще пути не задавал я.

В проекте есть же псевдопапка обозначенная как хедеры.
короче, добавил в нее этот inc файл... хуже не будет.

Еще вопрос: какие-то кусочки кода для asm где натягать?
И что значит в понятии ихнем библиотека? библиотечные файлы?
Это не то, что я думаю?

Да, и хелп по асму где взять... Стоп, уже кажется понимаю по английски...Хелп рулит.
Какой вкусный язык, этот ассемблер... прямо удовольствие читать...
И список команд из даташита - имеет или не имеет отношение к тому, чем в асме пользоваться придется?
Прохожий
Цитата(orthodox @ 23.8.2010, 1:20) *
Именно что упоминается.
А пути к нему я не задавал, так может его в папку перетащить?
откуда она его возьмет-то? на С: диск вообще пути не задавал я.

В проекте есть же псевдопапка обозначенная как хедеры.

Еще вопрос: какие-то кусочки кода для asm где натягать?
И что значит в понятии ихнем библиотека?
Это не то, что я думаю?

Не надо Вам никаких библиотек.
И путь для поиска хедеров MPLAB и так знает.
orthodox
Цитата(Прохожий @ 23.8.2010, 0:25) *
Не надо Вам никаких библиотек.
И путь для поиска хедеров MPLAB и так знает.


Тогда спасибо. Все заработало.
Читаю пока хелп, за неимением более подходящего документа.
После попробую мигнуть светодиодами.
Это конечно, отдельная возня...Опять буду помогать просить...
С русскими описаниями всего этого лажа какая-то ...

ну ладно, куча бумажных книжек еще есть...
Wise
Цитата
После попробую мигнуть светодиодами.

Сергей, не надо мигать. smile.gif
В свое время, когда я был, в этом плане, в вашем положении, сколько раз, почитавши разных рассылок, собирался "мигнуть".
Всякий раз, удивлялся, что на такое простое действие нужна довольно большая программа.. и понимание некоторых нюансов..
В итоге, бросал это дело.

Только, когда "приперло", один раз, для конкретной задачи, не стал нанимать программиста (как обычно), сел и написал сам, с нуля, заодно постигая, как создать проект, MPLAB, директивы ассемблера, систему команд. Было в той программе около тысячи строк. И она, к удивлению, в кристалле заработала сразу, без всяких доводок. Потому, вероятно, что очень тщательно продумывал, знакомясь с программированием, как новым делом.
А так бы я "мигал" до сих пор.. smile.gif

Для меня было важным (не знаю, для кого как) уяснение своего основного инструмента: вот, есть РОН, есть специальные регистры (их назначение было логично и понятно), есть аккумулятор. Собственно, все сводится к работе с регистрами через аккумулятор. Ну, а про периферию (таймеры, АЦП, компараторы, модули для ШИМ, для последовательной связи и т. д.) и многофункциональность пинов, имел представление и раньше.

Второе важное понимание - представление о программе как о темной комнате, по которой бегает узкий луч света. В любой момент он освещает только конкретный кусочек. Это я говорю о последовательном выполнении команд программы. Почему-то, раньше ("до того"), мне казалось, что процессы идут в МК параллельно, как в схеме например. Нет, там все последовательно.

Ну и дальше, конечно, это - большое кольцо "бегания луча" (программы), малые кольца, циклы, прерывания и т. д. Это уже естественно и вторично.
А потом уже пошло "выеживание" - можно этот кусочек уложить в 5 строчек, а вот если использовать вот этот подход (иногда, совсем неожиданный), то, можно обойтись тремя.. И это кайф.. smile.gif

Вот, если вам такая эмоциональная подсказка поможет.. russian_ru.gif
Burner
Ортодокс, а Вы уверены, что корень из суммы квадратов мгновенных отсчетов - это то, что Вам нужно?
_pasha
Цитата(orthodox @ 22.8.2010, 20:09) *
Идеально было бы 25-30 Квыборок...Эквивалентно частоте ШИМ на выходе...

В общем, на 8МГц, а не на 4-х - это у нас 100 команд. Не успеет.
Нужно немного преобразовать таблицы, вернее, выражение их породившее.
orthodox
Цитата(Burner @ 23.8.2010, 3:10) *
Ортодокс, а Вы уверены, что корень из суммы квадратов мгновенных отсчетов - это то, что Вам нужно?


Мне- да.
Вам тоже, но Вы пока еще не приложили это к своим задачам.

Цитата(_pasha @ 23.8.2010, 3:20) *
В общем, на 8МГц, а не на 4-х - это у нас 100 команд. Не успеет.
Нужно немного преобразовать таблицы, вернее, выражение их породившее.

Не думаю, что именно этот метод можно еще куда-то преобразовать.
Есть другой, я писал выше. Но пока речь именно об этом.
Успеет или нет - поглядим.
В крайнем случае, будет работать на более низкой частоте, чем ШИМ.

Цитата(Wise @ 23.8.2010, 1:17) *
Вот, если вам такая эмоциональная подсказка поможет.. russian_ru.gif

Ну, как сказать.
Я мыслю так же, но приятно что Вы тоже так рассуждаете.
конечно, это поддержка и помощь.
Мигание светодиодами на самом деле виртуальное стремление,
примерно как яишенка с ветчинкой у митьков.
Помогает собраться. Едва ли соберусь когда, потому что вот это вот решать надо.
Ну разве ребенок соберется, от как раз рядом ходит, как кошка на сметану.
наконец-то заинтересовался хоть чем-то в электронике...
То есть, по мелочи-то он паяет , но тут ему интереснее будет..

Цитата(GuruKiller @ 23.8.2010, 0:52) *
У него аппаратное умножение есть? сколько тактов?
Еси нет, то не бейтесь об стену. Только 30 тыс 16-битных умножений займут в районе 3-4 мипса.

У меня их будет меньше. Большая часть - восьмибитные.
результат 16-битный, а сами данные- восьмибитные.
Возведение в квадрат, кроме того, табличное будет.
Я так думаю. Корень извлекать - сложнее чуток, там 3 или даже 4 деления.
16 битное на 8 битное.
Но, кажется, они делаются как и умножения, примерно так же, да?
Если нет - то могу извлекать корень и при помощи одних умножений, такого же количества.
8 бит * на 8 бит - это быстрее?
Burner
Цитата(Прохожий @ 23.8.2010, 23:31) *
Правильно. Это когда трохи и для сэбе.
А когда человек деньги собрался зарабатывать, то могут и обобрать ненароком...

Значит, LPC111 сдирают? Именно когда их программировали в указанных средах? Почему и как? У них хреновая защита? Мне интересно. Я уже на Электрониксе вроде замечал упоминание об сдирании АРМ.
Harbinger
Цитата(orthodox @ 22.8.2010, 23:04) *
Там его нету, но АЦП - 8 битный, коммутатор 4 входа. Он опечатался.

Не опечатался. smile.gif У 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 цикла, деление тоже - вроде как должен успеть.
orthodox
Цитата(Harbinger @ 23.8.2010, 5:38) *
Не опечатался. smile.gif У LPC917 ЦАП имеется, приходилось использовать. Попутно нашёл хомут в коде, генерируемом для этого случая кодеархитектом.

После чего в AD1DAT3 просто впихиваем 8-битное число, и на 14-й лапе появляется пропорциональное ему напряжение (опора там равна VDD, хоть в мануале это явно не указано).
Прикину, успеет ли умножать/делить... на 18 МГц - 9 000 000 МЦ в секунду, mul ab занимает 4 цикла, деление тоже - вроде как должен успеть.


Очень интересно...
А может там еще и пара разрядов АЦП где-то спрятана?
А почему нету ЦАП в документации?
Harbinger
В UM_917 есть. Описание начинается на 31 странице.
АЦП, увы, 8-битный. Если бы не эта фигня с BOD, может, можно и на нём рискнуть... стоит 10 грн., если покупать несколько десятков. В крупном опте - меньше доллара.
Там появилась новая версия (9171), сейчас ДШ гляну... хз, что там с BOD. Ерраты нет (на 917 это было именно в еррате).
Нашёл еррату, внизу страницы спряталась. Беду с BOD якобы исправили! bomb.gif
orthodox
Цитата(Harbinger @ 23.8.2010, 13:40) *
В UM_917 есть. Описание начинается на 31 странице.
АЦП, увы, 8-битный. Если бы не эта фигня с BOD, может, можно и на нём рискнуть... стоит 10 грн., если покупать несколько десятков. В крупном опте - меньше доллара.
Там появилась новая версия (9171), сейчас ДШ гляну... хз, что там с BOD. Ерраты нет (на 917 это было именно в еррате).
Нашёл еррату, внизу страницы спряталась. Беду с BOD якобы исправили! bomb.gif

Таки да.
Есть такой выход.
Логичная организация, раз уж все равно ацп на цапе строится...
Может иногда и сгодится...
Прохожий
Цитата(Burner @ 23.8.2010, 6:19) *
Значит, LPC111 сдирают? Именно когда их программировали в указанных средах? Почему и как? У них хреновая защита? Мне интересно. Я уже на Электрониксе вроде замечал упоминание об сдирании АРМ.

ПМСМ, драть софт без исходников - дело гиблое.
Поэтому я с удивлением прочел про криптование бутлодыря.
Это как-бы раз.
Во-вторых.
Когда я это писал, я имел в виду, что для ARM-ов нормальных бесплатных IDE нет.
А за пользование не лицензионным IAR-ом или KEIL-ом могут надрать (_!_).

Прохожий
Цитата(Огурцов @ 24.8.2010, 0:40) *
А зачем нужны исходники, если есть рабочаяя прошивка ? Паяй платы, прошивай и продавай. А вот шифрованную - хрен продашь. Ибо дешифровать ее может только бутлодырь в уже прошитом чипе, в уже спаянном девайсе.

Или некое несменяемое ядро...
Без которого, все, что загружено бутлодырем значения не имеет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.