Страница 1 из 2

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

Добавлено: Пт сен 29, 2017 12:52:44
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)
Помогите начинающему разобраться где и что не так я написал в программе. На простоту программы прошу не обращать внимания это был просто первый пробный вариант.

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

Добавлено: Пт сен 29, 2017 13:57:38
Аlex
Ну он, как бы, сам вам говорит - Символ не определён. А в скобках пишет на что конкретно ругается.

PS: Вы 2 недели пытаетесь устранить эти ошибки ? :)

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

Добавлено: Пт сен 29, 2017 14:05:48
grey-vsm
Вы 2 недели пытаетесь устранить эти ошибки ?
Нет программу я написал один день назад.

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

Добавлено: Пт сен 29, 2017 14:08:43
abc
H0006 замените на более понятные евонному ассемблеру 0x06, H3FF1 - на 0x3FF1.
И т.д.

LIST тоже лечится просто - перед ним должен быть или пробел, или табуляция.
А еще у микрочипа есть огромная база подробнейшей документации, с примерами. В т.ч. и пособие по ассемблеру.

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

Добавлено: Пт сен 29, 2017 14:50:07
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)".

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

Добавлено: Пт сен 29, 2017 15:06:42
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... и копируете полученное в свой файл, в самое его начало.
Тип генератора в конфиге подберите под частоту кварца, или что там у вас планируется.

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

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

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

	__CONFIG 0x3FF1

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

Добавлено: Пт сен 29, 2017 15:09:34
Zhuk72
И еще одно: ваш goto в конце ведет опять на инициализацию порта, а должно идти на "; Установка сигналов на порту В".

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

Добавлено: Пт сен 29, 2017 20:20:46
pasha_zv
2ТС. изучать пики по кОРАБЕЛЬНИКОВУ - даже и не вздумай.

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

Добавлено: Пт сен 29, 2017 21:04:06
otest
В MPLAB всё есть ,чего не читали Корабельниковы.
Вот пример из MPLAB от производителя.

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

Добавлено: Вс окт 01, 2017 11:30:48
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] ...

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

Добавлено: Вс окт 01, 2017 11:43:51
otest
Зачем ты пишеш status portb trrisb ?
Выкинь это всё из программы, тебе уже писали об этом и смени учебник.
http://www.labkit.ru/

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

Добавлено: Вс окт 01, 2017 12:02:31
uldemir
otest писал(а):И вообще по поводу ошибок, нет ли у кого-нибудь
У кого-нибудь, может и нет, но почему не обратиться к производителю? Странно, во времена интернета не сходить просто на микрочиповский сайт и скачать оттуда. Ответ на ваш вопрос лежит на странице 163, а конкретно про 115-ю ошибку - на 164-й странице.

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

Добавлено: Вс окт 01, 2017 12:07:27
otest
Ошибку явно видно
PORTB equ 06h
TRISB equ 06h

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

Добавлено: Вс окт 01, 2017 12:12:48
uldemir
Ну, может товарищь еще не понял, что он подцепил командой #include? Что все эти статусы, порты и трисы уже там определены. Это, возможно, дойдёт со временем.

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

Добавлено: Вс окт 01, 2017 12:25:48
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:

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

Добавлено: Вс окт 01, 2017 13:28:48
Zhuk72
Повторю еще раз:

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

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

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

Добавлено: Вс окт 01, 2017 16:48:49
dosikus
[uquote="otest",url="/forum/viewtopic.php?p=3195824#p3195824"]и смени учебник.
http://www.labkit.ru/[/uquote]

Чему отсебятина, выложенная на том г.ресурсе, может научить?

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

Добавлено: Вс окт 01, 2017 22:31:06
sdn_
Согласен, у корабельникова самоучитель лучше. Только хардовый ассемблер, неприкрытый дефайнами и иклюдами учит молодых где раки зимуют.

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

Добавлено: Пн окт 02, 2017 10:06:12
BOB51
А у топикстартера похоже совсем настроение к работе отбили...
:(