Помогите начинающему в освоении программирования PIC-ов

Поклонники продукции Microchip Technology Inc тусуются тут.
grey-vsm
Родился
Сообщения: 5
Зарегистрирован: Пт сен 29, 2017 12:17:38

Помогите начинающему в освоении программирования PIC-ов

Сообщение grey-vsm »

Просьба не пинать под дых, а помочь понять в чём глюк у меня?
Занимаюсь 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
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение Аlex »

Ну он, как бы, сам вам говорит - Символ не определён. А в скобках пишет на что конкретно ругается.

PS: Вы 2 недели пытаетесь устранить эти ошибки ? :)
Реклама
grey-vsm
Родился
Сообщения: 5
Зарегистрирован: Пт сен 29, 2017 12:17:38

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение grey-vsm »

Вы 2 недели пытаетесь устранить эти ошибки ?
Нет программу я написал один день назад.
Аватара пользователя
abc
Друг Кота
Сообщения: 3685
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение abc »

H0006 замените на более понятные евонному ассемблеру 0x06, H3FF1 - на 0x3FF1.
И т.д.

LIST тоже лечится просто - перед ним должен быть или пробел, или табуляция.
А еще у микрочипа есть огромная база подробнейшей документации, с примерами. В т.ч. и пособие по ассемблеру.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Реклама
Эиком - электронные компоненты и радиодетали
grey-vsm
Родился
Сообщения: 5
Зарегистрирован: Пт сен 29, 2017 12:17:38

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение grey-vsm »

А в скобках пишет на что конкретно ругается.
Но в 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
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение Zhuk72 »

Все, что ДО 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... и копируете полученное в свой файл, в самое его начало.
Тип генератора в конфиге подберите под частоту кварца, или что там у вас планируется.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Реклама
Аватара пользователя
abc
Друг Кота
Сообщения: 3685
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение abc »

Ну или скачайте хоть один листинг с официального сайта и возьмите "шапку" оттуда
Перед CONFIG должно быть ДВА нижнего подчеркивания :

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

	__CONFIG 0x3FF1
Последний раз редактировалось abc Пт сен 29, 2017 15:09:41, всего редактировалось 1 раз.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение Zhuk72 »

И еще одно: ваш goto в конце ведет опять на инициализацию порта, а должно идти на "; Установка сигналов на порту В".
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Аватара пользователя
pasha_zv
Мучитель микросхем
Сообщения: 460
Зарегистрирован: Пт фев 17, 2017 11:18:07
Откуда: Ставрополь-Донское

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение pasha_zv »

2ТС. изучать пики по кОРАБЕЛЬНИКОВУ - даже и не вздумай.
LIVE - EVIL
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение otest »

В MPLAB всё есть ,чего не читали Корабельниковы.
Вот пример из MPLAB от производителя.
grey-vsm
Родился
Сообщения: 5
Зарегистрирован: Пт сен 29, 2017 12:17:38

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение grey-vsm »

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

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

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
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение otest »

Зачем ты пишеш status portb trrisb ?
Выкинь это всё из программы, тебе уже писали об этом и смени учебник.
http://www.labkit.ru/
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение uldemir »

otest писал(а):И вообще по поводу ошибок, нет ли у кого-нибудь
У кого-нибудь, может и нет, но почему не обратиться к производителю? Странно, во времена интернета не сходить просто на микрочиповский сайт и скачать оттуда. Ответ на ваш вопрос лежит на странице 163, а конкретно про 115-ю ошибку - на 164-й странице.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение otest »

Ошибку явно видно
PORTB equ 06h
TRISB equ 06h
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение uldemir »

Ну, может товарищь еще не понял, что он подцепил командой #include? Что все эти статусы, порты и трисы уже там определены. Это, возможно, дойдёт со временем.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15572
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение BOB51 »

Ежли б не упор на новый Х (который на моих компах дико "тормозит")...
Шаблон-заготовки в 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"
Только на сегодня еще и предварительно зарегистрироваться на сайте надо...
:evil:
Касательно PIC16F84/84A - этот МК превосходно и "устаревшей" IDE обрабатывается.
А вот тут имеются учебники/даташиты на русском:
http://www.microchip.ru/lit/?mid=1x0
:beer:

И дополнительно...
Ассемблер очень жестко привязан к схемке - хочется услышать путевый ответ - прилагаем к исходнику конкретную схему и описание того, что хотим от той схемы получить - тогда возможно и вариант проекта исходника для образца получить удастся.
8)
Как возможный вариант учебно-прикладного проекта под PIC16F628A (pin-to-pin с 84-м)
http://radiokot.ru/forum/download/file.php?id=289869
:roll:
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение Zhuk72 »

Повторю еще раз:

[uquote="Zhuk72",url="/forum/viewtopic.php?p=3194615#p3194615"]Все, что ДО org 0, удалите...

#include "p16f84a.inc" содержит адреса регистров, которые вы пытались описать в трех строчках...[/uquote]
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение dosikus »

[uquote="otest",url="/forum/viewtopic.php?p=3195824#p3195824"]и смени учебник.
http://www.labkit.ru/[/uquote]

Чему отсебятина, выложенная на том г.ресурсе, может научить?
sdn_
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Вс авг 14, 2016 23:00:53

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение sdn_ »

Согласен, у корабельникова самоучитель лучше. Только хардовый ассемблер, неприкрытый дефайнами и иклюдами учит молодых где раки зимуют.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15572
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите начинающему в освоении программирования PIC-ов

Сообщение BOB51 »

А у топикстартера похоже совсем настроение к работе отбили...
:(
Ответить

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