Форум РадиоКот https://radiokot.ru/forum/ |
|
Помогите начинающему в освоении программирования PIC-ов https://radiokot.ru/forum/viewtopic.php?f=58&t=148715 |
Страница 1 из 2 |
Автор: | grey-vsm [ Пт сен 29, 2017 12:52:44 ] |
Заголовок сообщения: | Помогите начинающему в освоении программирования PIC-ов |
Просьба не пинать под дых, а помочь понять в чём глюк у меня? Занимаюсь PIC-ами только вторую неделю, и для начала написал простую программу (используя программу MPLAB X IDE v4.01) на языке ассемблер.(текст ниже) Код: LIST P=PIC16F84A _CONFIG 0x3FF1 STATUS EQU H0003 PORTB EQU H0006 TRISB EQU H0006 org 0 ; Начало программы ; Подготовительные моменты START bsf STATUS,5 ; переход в Банк 1 clrf TRISB bcf STATUS,5 ; переход в Банк 0 ; Установка сигналов на порту В movlw b'01010101' movwf PORTB goto START end ; Конец программы Но после компиляции программы были показаны ошибки смысл которых я не могу понять. 1)Warning[205] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\LED_PORT_B\LED_PORT_B.X\LED_PORT_B.ASM 1 : Found directive in column 1. (LIST) 2)Error[122] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\LED_PORT_B\LED_PORT_B.X\LED_PORT_B.ASM 3 : Illegal opcode (H3FF1) 3)Error[113] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\LED_PORT_B\LED_PORT_B.X\LED_PORT_B.ASM 4 : Symbol not previously defined (H0003) 4)Error[113] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\LED_PORT_B\LED_PORT_B.X\LED_PORT_B.ASM 5 : Symbol not previously defined (H0006) 5)Error[113] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\LED_PORT_B\LED_PORT_B.X\LED_PORT_B.ASM 6 : Symbol not previously defined (H0006) Помогите начинающему разобраться где и что не так я написал в программе. На простоту программы прошу не обращать внимания это был просто первый пробный вариант. |
Автор: | Аlex [ Пт сен 29, 2017 13:57:38 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Ну он, как бы, сам вам говорит - Символ не определён. А в скобках пишет на что конкретно ругается. PS: Вы 2 недели пытаетесь устранить эти ошибки ? ![]() |
Автор: | grey-vsm [ Пт сен 29, 2017 14:05:48 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Цитата: Вы 2 недели пытаетесь устранить эти ошибки ? Нет программу я написал один день назад. |
Автор: | abc [ Пт сен 29, 2017 14:08:43 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
H0006 замените на более понятные евонному ассемблеру 0x06, H3FF1 - на 0x3FF1. И т.д. LIST тоже лечится просто - перед ним должен быть или пробел, или табуляция. А еще у микрочипа есть огромная база подробнейшей документации, с примерами. В т.ч. и пособие по ассемблеру. |
Автор: | grey-vsm [ Пт сен 29, 2017 14:50:07 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Цитата: А в скобках пишет на что конкретно ругается. Но в 3, 4 и 5 ошибках в скобках указано число, этим числом я задаю адрес регистров в шестнадцатиричном формате, и что-же тогда не нравится компилятору. Во второй ошибке в скобках указано число которое я присваиваю регистру CONFIG. Цитата: H0006 замените на более понятные евонному ассемблеру 0x06, H3FF1 - на 0x3FF1 Вообще то я уже пробовал вместо H3FF1 подставлять 0x3FF1, но компилятор все равно выдавал ошибку на символ (0), т.е. и в таком виде запись 16-го числа компилятор не принемает Добавлено after 14 minutes 43 seconds: Ну вот сейчас попробовал изменить значения H0003 и H0006 на 0x03 и 0x06 и ошибки которые касались этих чисел исчезли, а исправление H3FF1 на 0x3FF1 не помогло выходит следующее сообщение об ошибке: "Error[108] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\LED_PORT_B\LED_PORT_B.X\LED_PORT_B.ASM 3 : Illegal character (0)". |
Автор: | Zhuk72 [ Пт сен 29, 2017 15:06:42 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Все, что ДО org 0, удалите и впишите следующее: Код: ; PIC16F84A Configuration Bit Settings ; Assembly source line config statements #include "p16f84a.inc" ; CONFIG ; __config 0xFFFA __CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _CP_OFF #include "p16f84a.inc" содержит адреса регистров, которые вы пытались описать в трех строчках, а конфиг надо писать именно в таком раскрытом виде, чтобы было видно, что вы там активировали. Открою страшный секрет: весь этот код писал не я! В меню выбираете Window - PIC Memory Views - Configuration Bits. Там выбираете желаемые опции (описание в ДШ), жмете Generate... и копируете полученное в свой файл, в самое его начало. Тип генератора в конфиге подберите под частоту кварца, или что там у вас планируется. |
Автор: | abc [ Пт сен 29, 2017 15:08:18 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Ну или скачайте хоть один листинг с официального сайта и возьмите "шапку" оттуда Перед CONFIG должно быть ДВА нижнего подчеркивания : Код: __CONFIG 0x3FF1
|
Автор: | Zhuk72 [ Пт сен 29, 2017 15:09:34 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
И еще одно: ваш goto в конце ведет опять на инициализацию порта, а должно идти на "; Установка сигналов на порту В". |
Автор: | pasha_zv [ Пт сен 29, 2017 20:20:46 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
2ТС. изучать пики по кОРАБЕЛЬНИКОВУ - даже и не вздумай. |
Автор: | otest [ Пт сен 29, 2017 21:04:06 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
В MPLAB всё есть ,чего не читали Корабельниковы. Вот пример из MPLAB от производителя. |
Автор: | grey-vsm [ Вс окт 01, 2017 11:30:48 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Сейчас у меня в том-же самом коде при компиляции появляется всего одна ошибка, смысл которой мне тоже не понятен. Код: LIST p=16F84A #include "p16f84a.inc" ; CONFIG ; __config 0xFFF1 __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _CP_OFF STATUS equ 03h PORTB equ 06h TRISB equ 06h org 0 ; Nachalo programmi ; Podgotovitelnie momenti bsf STATUS,5 ; Perehod v Bank 1 clrf TRISB bcf STATUS,5 ; Perehod nazad v Bank 0 ; Ustanovka signalov na portu B START movlw b'10101010' movwf PORTB goto START end ; Konec programmi А ошибка такая:"Error[115] E:\PIC MICROCONTROLLERS\MY_PROJECTS\PROJECTS_PIC_MICROKONTROLLERS\2017\16F84A\LED_ON\LED_ON.X\LED_ON_ASM.ASM 9 : Duplicate label ("TRISB" or redefining symbol that cannot be redefined)" Что она означает? Добавлено after 9 minutes 59 seconds: И вообще по поводу ошибок, нет ли у кого-нибудь желательно наиболее полного описания возможных ошибок в MPLAB X, под номерами которыми они обозначаются после компиляции Добавлено after 1 minute 52 seconds: Под номерами например Error[115] ... |
Автор: | otest [ Вс окт 01, 2017 11:43:51 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Зачем ты пишеш status portb trrisb ? Выкинь это всё из программы, тебе уже писали об этом и смени учебник. http://www.labkit.ru/ |
Автор: | uldemir [ Вс окт 01, 2017 12:02:31 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
otest писал(а): И вообще по поводу ошибок, нет ли у кого-нибудь У кого-нибудь, может и нет, но почему не обратиться к производителю? Странно, во времена интернета не сходить просто на микрочиповский сайт и скачать оттуда. Ответ на ваш вопрос лежит на странице 163, а конкретно про 115-ю ошибку - на 164-й странице.
|
Автор: | otest [ Вс окт 01, 2017 12:07:27 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Ошибку явно видно PORTB equ 06h TRISB equ 06h |
Автор: | uldemir [ Вс окт 01, 2017 12:12:48 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Ну, может товарищь еще не понял, что он подцепил командой #include? Что все эти статусы, порты и трисы уже там определены. Это, возможно, дойдёт со временем. |
Автор: | BOB51 [ Вс окт 01, 2017 12:25:48 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Ежли б не упор на новый Х (который на моих компах дико "тормозит")... Шаблон-заготовки в 8.92 микрочип в состав самой IDE включал для стиля абсолютной адресации C:\Program Files\Microchip\MPASM Suite\Template\Code\*.TEMP.asm (где * - имя применяемого МК) и для стиля относительной адресации C:\Program Files\Microchip\MPASM Suite\Template\Object\*.TMPO.asm (где * - имя применяемого МК) надеюсь это правило в отношении преемственности должно соблюдаться. Описание работы с компилятором (и список ошибок) также стандартно включаются в состав самой IDE (у 8.92 это C:\Program Files\Microchip\MPASM Suite\hlpMPASMAsm.html) или собственно на сайте http://ww1.microchip.com/downloads/en/D ... 33014L.pdf ... В принципе ежли использовать суперновые МК то Х штуа весьма ЖЕЛАТЕЛЬНАЯ... НО... в случае с "типовыми" все же предпочтение старому-доброму 8.92 (http://www.microchip.com/development-to ... ds-archive раздел "MPLAB IDE Archives 16-bit Windows 32-bit Windows 32-bit Windows" строчка "MPLAB IDE v8.92" Только на сегодня еще и предварительно зарегистрироваться на сайте надо... ![]() Касательно PIC16F84/84A - этот МК превосходно и "устаревшей" IDE обрабатывается. А вот тут имеются учебники/даташиты на русском: http://www.microchip.ru/lit/?mid=1x0 ![]() И дополнительно... Ассемблер очень жестко привязан к схемке - хочется услышать путевый ответ - прилагаем к исходнику конкретную схему и описание того, что хотим от той схемы получить - тогда возможно и вариант проекта исходника для образца получить удастся. ![]() Как возможный вариант учебно-прикладного проекта под PIC16F628A (pin-to-pin с 84-м) download/file.php?id=289869 ![]() |
Автор: | Zhuk72 [ Вс окт 01, 2017 13:28:48 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Повторю еще раз: Все, что ДО org 0, удалите...
#include "p16f84a.inc" содержит адреса регистров, которые вы пытались описать в трех строчках... |
Автор: | dosikus [ Вс окт 01, 2017 16:48:49 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
и смени учебник. http://www.labkit.ru/ Чему отсебятина, выложенная на том г.ресурсе, может научить? |
Автор: | sdn_ [ Вс окт 01, 2017 22:31:06 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
Согласен, у корабельникова самоучитель лучше. Только хардовый ассемблер, неприкрытый дефайнами и иклюдами учит молодых где раки зимуют. |
Автор: | BOB51 [ Пн окт 02, 2017 10:06:12 ] |
Заголовок сообщения: | Re: Помогите начинающему в освоении программирования PIC-ов |
А у топикстартера похоже совсем настроение к работе отбили... ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |