Люди добрые помогите сделать задание на ассемблере PIC

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Родился
Сообщения: 10
Зарегистрирован: Вт янв 07, 2020 17:14:31

Сообщение Weless »

Нужно сделать 3 лабы на ассемблере PIC, если с AVR я разобрался более менее, то к пикам даже прикасаться не хочется, настолько все ужасно и с даташитами и средой отладки, но задания нужно как-то выполнять и поэтому прошу помощи у вас ребята. Задание таково: "Организовать программный счетчик с задержкой до 20 милисекунд", на этом все, понимаю, что написание программы займет 5 минут для знающего человека, но сам справиться не могу, выручайте (pic16f876)
Реклама
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

1. Вам сюда https://radiokot.ru/forum/viewforum.php?f=53
2. Для пиков полно русской документации и программ на асме
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Это где ж такие садюги, что задают СТУДНЯМ ассемблер для разных семейств изучать??
:shock:
Я еще понимаю в обзорном варианте, но с лабораторными да по конкретным кристаллам РАЗНЫХ СЕМЕЙСТВ??
Не слишком ли велика роскошь?
(смотри тут:
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720)
:roll:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 378
Зарегистрирован: Сб сен 19, 2009 07:02:19

Сообщение shindax »

[uquote="Weless",url="/forum/viewtopic.php?p=3928217#p3928217"]...то к пикам даже прикасаться не хочется, настолько все ужасно и с даташитами и средой отладки...[/uquote] Не пиз..те. Даташиты от Microchip одни из лучших в отрасли. Со средами отладки для Ваших задач тоже все нормально. Платите деньги, или извольте потрудиться сами, муд@ков нигде не любят.
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

Как-то отправил микрочипу письмо - в даташите нехилая такая ошибка была, на pic18f14k50, из-за которой usb работал некорректно. Через год получил от сервера письмо "Поскольку в течения года никто письмо не прочитал, оно удаляется".
У STМикроэлектроникс RM и AN мне больше нравятся.
Weless писал(а):если с AVR я разобрался более менее, то к пикам даже прикасаться не хочется
Меняйте профессию, пока не поздно. Если Вы разобрались с одним семейством мк, но не можете с другим, хотя у них одна и та же архитектура, то как же будете дальше?...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

BlackKilkennyCat
У ПИКовых и АВР весьма разная организация.
И тем более синтаксис компиляторов ассемблера.
Другое дело - ежли ПРОСТЕЙШАЯ задачка - и то... без предварительного изучения данных тем не слишком корректно.
8)
Это с точки зрения УЖЕ освоившего все просто.
Для корректного самостоятельного освоения относительно "среднеуровневой" работы под "чистым ассемблером" по каждому семейству не менее 1,5-2 года надо.
:wink:
Реклама
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

BOB51, архитектура гарвардская и у того и другого, вроде бы?
а синтаксис...
a = a + 1; inc(a, 1); a++; - вот это ещё можно назвать проблемой разного синтаксиса
А в ассемблере... справочник никто не отбирал же.
Полтора-два года не надо. ТС заявил, что с одним велосипедом он справился. А на другом колёса вдруг стали квадратными и руль ниже педалей?
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

АВР - 32 регистр - аккумулятора и отдельно размещенная память данных(правда допускается обращение к тому же массиву регистр-аккумуляторов и УВВ/РСФ как к полю адресов ОЗУ), для доступа к которой используются только команды чтения/записи(за редким исключением ограниченной адресной области).
ПИК(среднемладшие) - ЕДИНСТВЕННЫЙ аккумулятор и сегментированное ОЗУ с присутствием области УВВ/РСФ. Плюс флаг указания места размещения результата в составе команды. Практически любая команда имеет доступ к любой ячейке текущего сегмента ОЗУ.
Функционал аккумулятора достаточно жестко ограничен (снято в 18-й серии и у улучшенной среднемладшей).
Действие флага С в операциях вычитания у АВР и ПИК различно "до наоборот".
Обращение к таблицам данных в ПЗУ резко отличается.
Ну и прочие "мелочи", включая специфику написания перемещаемых программ (относительная адресация) под ассемблером.
Деталировка отличий в "винной" на реальных проектах разбиралась.
А в остальном ессно "архитектура гарвардская".
8)
К примеру:

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

AVR
Ldi R16,0xff
loop:
dec R16
brne loop

PIC
movlw 0xff
movwf 0x70 ; первый из регистров области SHR для PIC16F87x инкремент/декремент аккумулятора
               ; не допускается, хотя есть возможность размещения результата в аккумуляторе
loop:
decfsz 0x70,1
goto loop
Последний раз редактировалось BOB51 Сб ноя 21, 2020 21:59:21, всего редактировалось 1 раз.
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

О боже мой! Что же тогда делать?! Всё прямо инопланетное! :)
Это как бы лабораторная работа. Если систему не изменили, она не сильно выходит а) за общие рамки вообще, б) за рамки методичек.
Всяческие нюансы разъяснены и дополнительная литература имеется.
Не верю, что человек, разобравшийся с асм в авр, застрянет с асм в пик. Максимум, он будет задавать вопросы по подобным мелочам.
И глянем само задание: программный счётчик с задержкой до 20 ms. 3 штуки.
А ведь достаточно написать на любом "яву для пик" да глянуть листинг асма...
Но даже до этого не догадаться.
Будущий инженер.
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Зависит от уровня задачи - без хорошей подготовки может и "подзастрять".
Особо, ежли современными методичками пользоваться.
8)
Конфигурация тактового генератора - изучение документации.
От нее зависит частота.
Опять же вылазят особенности ядра и системы команд при построении программного счетчика (конвеер у МК насколько разный).
О стеке отдельный разговор - жто совсем не "вольница АВР".
В принципепри КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно...
Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ.
Разве что спецконспект и "шпоргалки" при длительных перерывах выручают.
:beer:
Последний раз редактировалось BOB51 Сб ноя 21, 2020 22:08:40, всего редактировалось 1 раз.
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

Уровень там написан: делэй :)
Собственно, приведенный пример различия уже на 98% выполненная работа :))
Друг Кота
Аватара пользователя
Сообщения: 25391
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

[uquote="BOB51",url="/forum/viewtopic.php?p=3928606#p3928606"]К примеру:
movlw 0xff
movwf 0x70
loop:
decfsz 0x70,1
goto loop[/uquote]

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

    movlw  0xFF
loop:
    addlw  0xFE;  или sublw 0x01
    btfss  STATUS, Z
    goto  loop
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Там одноуровневым циклом для 20 миллисекунд не отделаешся.
Частота на встроенном RC 4МГц - с учетом коэффициента 4 одноцикловая команда 0,000001 секунды.
А дальше считаем "циклы команд ветвления/пропуска".
8)

КРАМ
Это уже из "дополнительной программы", а не простейший минимум!
Я так думаю ТОПИКСТАРТЕРУ вряд-ли давали подобное - иначе бы и вопроса не возникло.
8)
Электрический кот
Аватара пользователя
Сообщения: 1004
Зарегистрирован: Ср окт 04, 2017 20:47:40

Сообщение valentinovich »

[uquote="BOB51",url="/forum/viewtopic.php?p=3928620#p3928620"]В принципе при КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно...
Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ.
Разве что спецконспект и "шпоргалки" при длительных перерывах выручают.
:beer:[/uquote]
Вижу в рассуждениях явное противоречие - если человек именно РАЗОБРАЛСЯ (т. е. понял суть, принцип и подход к решению) то это уже забыть невозможно. Это же не заученный чужой стих.
Хотя чего мы тут? ТС похоже уже "слился". Да и ответ ему уже на 90% даден. :)
Друг Кота
Аватара пользователя
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Даже если разобрался, но более месяца не имел практики потребуется день-два на "восстановление навыков" (и то при наличии надлежащих конспектов).
А тем более ежли при том "перепрыгивать" при работе с одного семейства на другое.
Как-то на себе проверено.
8)
Вот еще СТУДНЮ В ПОМОЩ...
Правда за основу брались не АВР, а MCS51 но и при таком подходе удобнее с одного семейства на другое перескакивать:
шпора avr.pdf
(60.25 КБ) 244 скачивания
классические среднемладшие
ШПОРА_PIC10_12_16.pdf
(648.72 КБ) 264 скачивания
"энхансед" среднемладшие (гибрид 10/12/16 с 18-й)
ШПОРА_PIC10_12_16_em.pdf
(786.17 КБ) 264 скачивания
может пригодится...
:wink:
Ответить

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