Форум РадиоКот https://radiokot.ru/forum/ |
|
Люди добрые помогите сделать задание на ассемблере PIC https://radiokot.ru/forum/viewtopic.php?f=58&t=173986 |
Страница 1 из 1 |
Автор: | Weless [ Сб ноя 21, 2020 13:07:37 ] |
Заголовок сообщения: | Люди добрые помогите сделать задание на ассемблере PIC |
Нужно сделать 3 лабы на ассемблере PIC, если с AVR я разобрался более менее, то к пикам даже прикасаться не хочется, настолько все ужасно и с даташитами и средой отладки, но задания нужно как-то выполнять и поэтому прошу помощи у вас ребята. Задание таково: "Организовать программный счетчик с задержкой до 20 милисекунд", на этом все, понимаю, что написание программы займет 5 минут для знающего человека, но сам справиться не могу, выручайте (pic16f876) |
Автор: | otest [ Сб ноя 21, 2020 13:25:10 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
1. Вам сюда https://radiokot.ru/forum/viewforum.php?f=53 2. Для пиков полно русской документации и программ на асме |
Автор: | BOB51 [ Сб ноя 21, 2020 19:08:43 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
Это где ж такие садюги, что задают СТУДНЯМ ассемблер для разных семейств изучать?? ![]() Я еще понимаю в обзорном варианте, но с лабораторными да по конкретным кристаллам РАЗНЫХ СЕМЕЙСТВ?? Не слишком ли велика роскошь? (смотри тут: https://radiokot.ru/forum/viewtopic.php?f=62&t=94201 https://radiokot.ru/forum/viewtopic.php?f=62&t=156720) ![]() |
Автор: | shindax [ Сб ноя 21, 2020 19:54:28 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
...то к пикам даже прикасаться не хочется, настолько все ужасно и с даташитами и средой отладки... Не пиз..те. Даташиты от Microchip одни из лучших в отрасли. Со средами отладки для Ваших задач тоже все нормально. Платите деньги, или извольте потрудиться сами, муд@ков нигде не любят.
|
Автор: | BlackKilkennyCat [ Сб ноя 21, 2020 20:09:06 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
Как-то отправил микрочипу письмо - в даташите нехилая такая ошибка была, на pic18f14k50, из-за которой usb работал некорректно. Через год получил от сервера письмо "Поскольку в течения года никто письмо не прочитал, оно удаляется". У STМикроэлектроникс RM и AN мне больше нравятся. Weless писал(а): если с AVR я разобрался более менее, то к пикам даже прикасаться не хочется Меняйте профессию, пока не поздно. Если Вы разобрались с одним семейством мк, но не можете с другим, хотя у них одна и та же архитектура, то как же будете дальше?...
|
Автор: | BOB51 [ Сб ноя 21, 2020 20:52:35 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
BlackKilkennyCat У ПИКовых и АВР весьма разная организация. И тем более синтаксис компиляторов ассемблера. Другое дело - ежли ПРОСТЕЙШАЯ задачка - и то... без предварительного изучения данных тем не слишком корректно. ![]() Это с точки зрения УЖЕ освоившего все просто. Для корректного самостоятельного освоения относительно "среднеуровневой" работы под "чистым ассемблером" по каждому семейству не менее 1,5-2 года надо. ![]() |
Автор: | BlackKilkennyCat [ Сб ноя 21, 2020 21:12:22 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
BOB51, архитектура гарвардская и у того и другого, вроде бы? а синтаксис... a = a + 1; inc(a, 1); a++; - вот это ещё можно назвать проблемой разного синтаксиса А в ассемблере... справочник никто не отбирал же. Полтора-два года не надо. ТС заявил, что с одним велосипедом он справился. А на другом колёса вдруг стали квадратными и руль ниже педалей? |
Автор: | BOB51 [ Сб ноя 21, 2020 21:37:32 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
АВР - 32 регистр - аккумулятора и отдельно размещенная память данных(правда допускается обращение к тому же массиву регистр-аккумуляторов и УВВ/РСФ как к полю адресов ОЗУ), для доступа к которой используются только команды чтения/записи(за редким исключением ограниченной адресной области). ПИК(среднемладшие) - ЕДИНСТВЕННЫЙ аккумулятор и сегментированное ОЗУ с присутствием области УВВ/РСФ. Плюс флаг указания места размещения результата в составе команды. Практически любая команда имеет доступ к любой ячейке текущего сегмента ОЗУ. Функционал аккумулятора достаточно жестко ограничен (снято в 18-й серии и у улучшенной среднемладшей). Действие флага С в операциях вычитания у АВР и ПИК различно "до наоборот". Обращение к таблицам данных в ПЗУ резко отличается. Ну и прочие "мелочи", включая специфику написания перемещаемых программ (относительная адресация) под ассемблером. Деталировка отличий в "винной" на реальных проектах разбиралась. А в остальном ессно "архитектура гарвардская". ![]() К примеру: Код: AVR
Ldi R16,0xff loop: dec R16 brne loop PIC movlw 0xff movwf 0x70 ; первый из регистров области SHR для PIC16F87x инкремент/декремент аккумулятора ; не допускается, хотя есть возможность размещения результата в аккумуляторе loop: decfsz 0x70,1 goto loop |
Автор: | BlackKilkennyCat [ Сб ноя 21, 2020 21:53:44 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
О боже мой! Что же тогда делать?! Всё прямо инопланетное! ![]() Это как бы лабораторная работа. Если систему не изменили, она не сильно выходит а) за общие рамки вообще, б) за рамки методичек. Всяческие нюансы разъяснены и дополнительная литература имеется. Не верю, что человек, разобравшийся с асм в авр, застрянет с асм в пик. Максимум, он будет задавать вопросы по подобным мелочам. И глянем само задание: программный счётчик с задержкой до 20 ms. 3 штуки. А ведь достаточно написать на любом "яву для пик" да глянуть листинг асма... Но даже до этого не догадаться. Будущий инженер. |
Автор: | BOB51 [ Сб ноя 21, 2020 22:01:48 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
Зависит от уровня задачи - без хорошей подготовки может и "подзастрять". Особо, ежли современными методичками пользоваться. ![]() Конфигурация тактового генератора - изучение документации. От нее зависит частота. Опять же вылазят особенности ядра и системы команд при построении программного счетчика (конвеер у МК насколько разный). О стеке отдельный разговор - жто совсем не "вольница АВР". В принципепри КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно... Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ. Разве что спецконспект и "шпоргалки" при длительных перерывах выручают. ![]() |
Автор: | BlackKilkennyCat [ Сб ноя 21, 2020 22:03:35 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
Уровень там написан: делэй ![]() Собственно, приведенный пример различия уже на 98% выполненная работа ![]() |
Автор: | КРАМ [ Сб ноя 21, 2020 22:10:32 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
К примеру: movlw 0xff movwf 0x70 loop: decfsz 0x70,1 goto loop Код: movlw 0xFF
loop: addlw 0xFE; или sublw 0x01 btfss STATUS, Z goto loop |
Автор: | BOB51 [ Сб ноя 21, 2020 22:15:09 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
Там одноуровневым циклом для 20 миллисекунд не отделаешся. Частота на встроенном RC 4МГц - с учетом коэффициента 4 одноцикловая команда 0,000001 секунды. А дальше считаем "циклы команд ветвления/пропуска". ![]() КРАМ Это уже из "дополнительной программы", а не простейший минимум! Я так думаю ТОПИКСТАРТЕРУ вряд-ли давали подобное - иначе бы и вопроса не возникло. ![]() |
Автор: | valentinovich [ Сб ноя 21, 2020 22:46:08 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
В принципе при КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно... Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ. Разве что спецконспект и "шпоргалки" при длительных перерывах выручают. ![]() Вижу в рассуждениях явное противоречие - если человек именно РАЗОБРАЛСЯ (т. е. понял суть, принцип и подход к решению) то это уже забыть невозможно. Это же не заученный чужой стих. Хотя чего мы тут? ТС похоже уже "слился". Да и ответ ему уже на 90% даден. ![]() |
Автор: | BOB51 [ Вс ноя 22, 2020 00:02:22 ] |
Заголовок сообщения: | Re: Люди добрые помогите сделать задание на ассемблере PIC |
Даже если разобрался, но более месяца не имел практики потребуется день-два на "восстановление навыков" (и то при наличии надлежащих конспектов). А тем более ежли при том "перепрыгивать" при работе с одного семейства на другое. Как-то на себе проверено. ![]() Вот еще СТУДНЮ В ПОМОЩ... Правда за основу брались не АВР, а MCS51 но и при таком подходе удобнее с одного семейства на другое перескакивать: Вложение: классические среднемладшие Вложение: "энхансед" среднемладшие (гибрид 10/12/16 с 18-й) Вложение: может пригодится... ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |