Люди добрые помогите сделать задание на ассемблере PIC
Люди добрые помогите сделать задание на ассемблере PIC
Нужно сделать 3 лабы на ассемблере PIC, если с AVR я разобрался более менее, то к пикам даже прикасаться не хочется, настолько все ужасно и с даташитами и средой отладки, но задания нужно как-то выполнять и поэтому прошу помощи у вас ребята. Задание таково: "Организовать программный счетчик с задержкой до 20 милисекунд", на этом все, понимаю, что написание программы займет 5 минут для знающего человека, но сам справиться не могу, выручайте (pic16f876)
- Реклама
Re: Люди добрые помогите сделать задание на ассемблере PIC
1. Вам сюда https://radiokot.ru/forum/viewforum.php?f=53
2. Для пиков полно русской документации и программ на асме
2. Для пиков полно русской документации и программ на асме
Re: Люди добрые помогите сделать задание на ассемблере PIC
Это где ж такие садюги, что задают СТУДНЯМ ассемблер для разных семейств изучать??

Я еще понимаю в обзорном варианте, но с лабораторными да по конкретным кристаллам РАЗНЫХ СЕМЕЙСТВ??
Не слишком ли велика роскошь?
(смотри тут:
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720)

Я еще понимаю в обзорном варианте, но с лабораторными да по конкретным кристаллам РАЗНЫХ СЕМЕЙСТВ??
Не слишком ли велика роскошь?
(смотри тут:
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720)
Re: Люди добрые помогите сделать задание на ассемблере PIC
[uquote="Weless",url="/forum/viewtopic.php?p=3928217#p3928217"]...то к пикам даже прикасаться не хочется, настолько все ужасно и с даташитами и средой отладки...[/uquote] Не пиз..те. Даташиты от Microchip одни из лучших в отрасли. Со средами отладки для Ваших задач тоже все нормально. Платите деньги, или извольте потрудиться сами, муд@ков нигде не любят.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Люди добрые помогите сделать задание на ассемблере PIC
Как-то отправил микрочипу письмо - в даташите нехилая такая ошибка была, на pic18f14k50, из-за которой usb работал некорректно. Через год получил от сервера письмо "Поскольку в течения года никто письмо не прочитал, оно удаляется".
У STМикроэлектроникс RM и AN мне больше нравятся.
У STМикроэлектроникс RM и AN мне больше нравятся.
Меняйте профессию, пока не поздно. Если Вы разобрались с одним семейством мк, но не можете с другим, хотя у них одна и та же архитектура, то как же будете дальше?...Weless писал(а):если с AVR я разобрался более менее, то к пикам даже прикасаться не хочется
- Реклама
Re: Люди добрые помогите сделать задание на ассемблере PIC
BlackKilkennyCat
У ПИКовых и АВР весьма разная организация.
И тем более синтаксис компиляторов ассемблера.
Другое дело - ежли ПРОСТЕЙШАЯ задачка - и то... без предварительного изучения данных тем не слишком корректно.
Это с точки зрения УЖЕ освоившего все просто.
Для корректного самостоятельного освоения относительно "среднеуровневой" работы под "чистым ассемблером" по каждому семейству не менее 1,5-2 года надо.

У ПИКовых и АВР весьма разная организация.
И тем более синтаксис компиляторов ассемблера.
Другое дело - ежли ПРОСТЕЙШАЯ задачка - и то... без предварительного изучения данных тем не слишком корректно.
Это с точки зрения УЖЕ освоившего все просто.
Для корректного самостоятельного освоения относительно "среднеуровневой" работы под "чистым ассемблером" по каждому семейству не менее 1,5-2 года надо.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Люди добрые помогите сделать задание на ассемблере PIC
BOB51, архитектура гарвардская и у того и другого, вроде бы?
а синтаксис...
a = a + 1; inc(a, 1); a++; - вот это ещё можно назвать проблемой разного синтаксиса
А в ассемблере... справочник никто не отбирал же.
Полтора-два года не надо. ТС заявил, что с одним велосипедом он справился. А на другом колёса вдруг стали квадратными и руль ниже педалей?
а синтаксис...
a = a + 1; inc(a, 1); a++; - вот это ещё можно назвать проблемой разного синтаксиса
А в ассемблере... справочник никто не отбирал же.
Полтора-два года не надо. ТС заявил, что с одним велосипедом он справился. А на другом колёса вдруг стали квадратными и руль ниже педалей?
Re: Люди добрые помогите сделать задание на ассемблере PIC
АВР - 32 регистр - аккумулятора и отдельно размещенная память данных(правда допускается обращение к тому же массиву регистр-аккумуляторов и УВВ/РСФ как к полю адресов ОЗУ), для доступа к которой используются только команды чтения/записи(за редким исключением ограниченной адресной области).
ПИК(среднемладшие) - ЕДИНСТВЕННЫЙ аккумулятор и сегментированное ОЗУ с присутствием области УВВ/РСФ. Плюс флаг указания места размещения результата в составе команды. Практически любая команда имеет доступ к любой ячейке текущего сегмента ОЗУ.
Функционал аккумулятора достаточно жестко ограничен (снято в 18-й серии и у улучшенной среднемладшей).
Действие флага С в операциях вычитания у АВР и ПИК различно "до наоборот".
Обращение к таблицам данных в ПЗУ резко отличается.
Ну и прочие "мелочи", включая специфику написания перемещаемых программ (относительная адресация) под ассемблером.
Деталировка отличий в "винной" на реальных проектах разбиралась.
А в остальном ессно "архитектура гарвардская".

К примеру:
ПИК(среднемладшие) - ЕДИНСТВЕННЫЙ аккумулятор и сегментированное ОЗУ с присутствием области УВВ/РСФ. Плюс флаг указания места размещения результата в составе команды. Практически любая команда имеет доступ к любой ячейке текущего сегмента ОЗУ.
Функционал аккумулятора достаточно жестко ограничен (снято в 18-й серии и у улучшенной среднемладшей).
Действие флага С в операциях вычитания у АВР и ПИК различно "до наоборот".
Обращение к таблицам данных в ПЗУ резко отличается.
Ну и прочие "мелочи", включая специфику написания перемещаемых программ (относительная адресация) под ассемблером.
Деталировка отличий в "винной" на реальных проектах разбиралась.
А в остальном ессно "архитектура гарвардская".
К примеру:
Код: Выделить всё
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 раз.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Люди добрые помогите сделать задание на ассемблере PIC
О боже мой! Что же тогда делать?! Всё прямо инопланетное! 
Это как бы лабораторная работа. Если систему не изменили, она не сильно выходит а) за общие рамки вообще, б) за рамки методичек.
Всяческие нюансы разъяснены и дополнительная литература имеется.
Не верю, что человек, разобравшийся с асм в авр, застрянет с асм в пик. Максимум, он будет задавать вопросы по подобным мелочам.
И глянем само задание: программный счётчик с задержкой до 20 ms. 3 штуки.
А ведь достаточно написать на любом "яву для пик" да глянуть листинг асма...
Но даже до этого не догадаться.
Будущий инженер.
Это как бы лабораторная работа. Если систему не изменили, она не сильно выходит а) за общие рамки вообще, б) за рамки методичек.
Всяческие нюансы разъяснены и дополнительная литература имеется.
Не верю, что человек, разобравшийся с асм в авр, застрянет с асм в пик. Максимум, он будет задавать вопросы по подобным мелочам.
И глянем само задание: программный счётчик с задержкой до 20 ms. 3 штуки.
А ведь достаточно написать на любом "яву для пик" да глянуть листинг асма...
Но даже до этого не догадаться.
Будущий инженер.
Re: Люди добрые помогите сделать задание на ассемблере PIC
Зависит от уровня задачи - без хорошей подготовки может и "подзастрять".
Особо, ежли современными методичками пользоваться.

Конфигурация тактового генератора - изучение документации.
От нее зависит частота.
Опять же вылазят особенности ядра и системы команд при построении программного счетчика (конвеер у МК насколько разный).
О стеке отдельный разговор - жто совсем не "вольница АВР".
В принципепри КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно...
Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ.
Разве что спецконспект и "шпоргалки" при длительных перерывах выручают.

Особо, ежли современными методичками пользоваться.
Конфигурация тактового генератора - изучение документации.
От нее зависит частота.
Опять же вылазят особенности ядра и системы команд при построении программного счетчика (конвеер у МК насколько разный).
О стеке отдельный разговор - жто совсем не "вольница АВР".
В принципепри КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно...
Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ.
Разве что спецконспект и "шпоргалки" при длительных перерывах выручают.
Последний раз редактировалось BOB51 Сб ноя 21, 2020 22:08:40, всего редактировалось 1 раз.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Люди добрые помогите сделать задание на ассемблере PIC
Уровень там написан: делэй 
Собственно, приведенный пример различия уже на 98% выполненная работа
Собственно, приведенный пример различия уже на 98% выполненная работа
- КРАМ
- Друг Кота
- Сообщения: 25390
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Люди добрые помогите сделать задание на ассемблере PIC
[uquote="BOB51",url="/forum/viewtopic.php?p=3928606#p3928606"]К примеру:
movlw 0xff
movwf 0x70
loop:
decfsz 0x70,1
goto loop[/uquote]
movlw 0xff
movwf 0x70
loop:
decfsz 0x70,1
goto loop[/uquote]
Код: Выделить всё
movlw 0xFF
loop:
addlw 0xFE; или sublw 0x01
btfss STATUS, Z
goto loop
Re: Люди добрые помогите сделать задание на ассемблере PIC
Там одноуровневым циклом для 20 миллисекунд не отделаешся.
Частота на встроенном RC 4МГц - с учетом коэффициента 4 одноцикловая команда 0,000001 секунды.
А дальше считаем "циклы команд ветвления/пропуска".

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

Частота на встроенном RC 4МГц - с учетом коэффициента 4 одноцикловая команда 0,000001 секунды.
А дальше считаем "циклы команд ветвления/пропуска".
КРАМ
Это уже из "дополнительной программы", а не простейший минимум!
Я так думаю ТОПИКСТАРТЕРУ вряд-ли давали подобное - иначе бы и вопроса не возникло.
- valentinovich
- Электрический кот
- Сообщения: 1004
- Зарегистрирован: Ср окт 04, 2017 20:47:40
Re: Люди добрые помогите сделать задание на ассемблере PIC
[uquote="BOB51",url="/forum/viewtopic.php?p=3928620#p3928620"]В принципе при КАЧЕСТВЕННОЙ ПОДШОТОВКЕ (зависит от препода) и собственном желании разобраться можно...
Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ.
Разве что спецконспект и "шпоргалки" при длительных перерывах выручают.
[/uquote]
Вижу в рассуждениях явное противоречие - если человек именно РАЗОБРАЛСЯ (т. е. понял суть, принцип и подход к решению) то это уже забыть невозможно. Это же не заученный чужой стих.
Хотя чего мы тут? ТС похоже уже "слился". Да и ответ ему уже на 90% даден.
Однако и забывается весьма быстро, ежли нет ПОСТОЯННОЙ ПРАКТИКИ.
Разве что спецконспект и "шпоргалки" при длительных перерывах выручают.
Вижу в рассуждениях явное противоречие - если человек именно РАЗОБРАЛСЯ (т. е. понял суть, принцип и подход к решению) то это уже забыть невозможно. Это же не заученный чужой стих.
Хотя чего мы тут? ТС похоже уже "слился". Да и ответ ему уже на 90% даден.
Re: Люди добрые помогите сделать задание на ассемблере PIC
Даже если разобрался, но более месяца не имел практики потребуется день-два на "восстановление навыков" (и то при наличии надлежащих конспектов).
А тем более ежли при том "перепрыгивать" при работе с одного семейства на другое.
Как-то на себе проверено.

Вот еще СТУДНЮ В ПОМОЩ...
Правда за основу брались не АВР, а MCS51 но и при таком подходе удобнее с одного семейства на другое перескакивать: классические среднемладшие "энхансед" среднемладшие (гибрид 10/12/16 с 18-й) может пригодится...

А тем более ежли при том "перепрыгивать" при работе с одного семейства на другое.
Как-то на себе проверено.
Вот еще СТУДНЮ В ПОМОЩ...
Правда за основу брались не АВР, а MCS51 но и при таком подходе удобнее с одного семейства на другое перескакивать: классические среднемладшие "энхансед" среднемладшие (гибрид 10/12/16 с 18-й) может пригодится...


