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

MPLAB в вопросах и ответах

Добавлено: Сб дек 01, 2007 12:29:12
PicNov76
У меня вопрос почему при компиляции возникает ошибка:
Register in operand not in bank 0. Ensure that bank bits are correct.
Хотя код выполняется корректно
bcf STATUS,6
bsf STATUS,5
movlw b'11110000'
movwf TRISB


Pic16f84a

Добавлено: Сб дек 01, 2007 14:41:18
dalay-lama
Вышеприведенный код справедлив для PIC16F628A. В нём переход в 1-й банк делается именно так.

Для PIC16F84A переход в 1-й банк делается так:

bsf STATUS, RP0 ; 1-й банк
movlw b'11110000' ; RB4-RB7 на вход,
movwf TRISB ; остальные на выход
bcf STATUS, RP0 ; 0-й банк

Добавлено: Сб дек 01, 2007 15:00:47
PicNov76
Первоначально было именно так
bsf STATUS, RP0 ,
но ошибка таже.

Добавлено: Сб дек 01, 2007 15:06:11
dalay-lama
Странно... А в шапке прописано:
list p=16F84A ;
#include <p16F84a> ;

Если да, попробуйте добавить:
errorlevel -302 ;

Добавлено: Сб дек 01, 2007 15:38:34
Pahan
Просто забей. Это не ошибка, а предупреждение. Если парит, добавь как советовал dalay-lama errorlevel -302, -307.
Кстати банки можно переключать так
BANKSEL 0x00 ; bank 0
При генерации кода нужные команды добавятся сами.

Добавлено: Сб дек 01, 2007 16:08:47
PicNov76
Насчёт errorlevel -302 согласен.
HEX-ликвидный.Прошивка работает,
но меня интересует причина возникновения предупреждения.

Добавлено: Сб дек 01, 2007 17:31:46
dalay-lama
Какая версия MPLAB IDE?
Дайте код программы по инициализацию портов включительно. Посмотрим...

Добавлено: Сб дек 01, 2007 17:53:26
PicNov76
LIST P=16F84A
include "P16F84a.inc" ; 4.000 MHz
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON& _XT_OSC

ORG 0x0000

clrf Flags
clrf PORTB
clrf PORTA
;bsf STATUS, RP0
bcf STATUS,6
bsf STATUS,5
movlw b'11110000'
movwf TRISB
movlw b'00000010'
movwf TRISA
movlw b'00100111'
movwf OPTION_REG
bcf STATUS, RP0

MPLAB IDE v7.20

Добавлено: Сб дек 01, 2007 19:20:37
dalay-lama
PicNov76 писал(а):LIST P=16F84A
include "P16F84a.inc" ; 4.000 MHz
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON& _XT_OSC

ORG 0x0000

clrf Flags
clrf PORTB
clrf PORTA
;bsf STATUS, RP0
bcf STATUS,6
bsf STATUS,5
movlw b'11110000'
movwf TRISB
movlw b'00000010'
movwf TRISA
movlw b'00100111'
movwf OPTION_REG
bcf STATUS, RP0

MPLAB IDE v7.20

Ок... Всё ясно. PIC16F84A имеет только 2 банка: 0-й и 1-й. Отдельно при инициализации сбрасывать 6-й бит регистра STATUS нет смысла (лишняя команда). Пропишите регистр OPTION_REG как в моём примере и пребудет с Вами счастье! Должно быть так:

list p=16F84A
#include <p16F84a>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON& _XT_OSC

OptionR EQU 01H

ORG 0x0000

clrf Flags
clrf PORTB
clrf PORTA
bsf STATUS, RP0
movlw b'11110000'
movwf TRISB
movlw b'00000010'
movwf TRISA
movlw b'00100111'
movwf OptionR
bcf STATUS, RP0

Хочу добавить, что MPLAB ругается из-за регистра OPTION_REG. Его необходимо прописывать в начале программы. Проверьте!

Компиляция в MPLAB IDE

Добавлено: Ср сен 23, 2009 16:49:42
lluganet
VPLAB IDE 6.22 c HI-TEC_PICC_v8.01_PL3
Помогите пожалуйста разобраться. В английском не силен да и в програмировании полный ноль, только научится пытаюсь. Не пойму как в нем скомпилировать С в НЕХ. Получаются всякие форматы но только не то что нужно.
Или ткните пожалуйста носом где можно прочитать про него.

Добавлено: Чт сен 24, 2009 17:49:43
lluganet
Блин.....
или вопрос сильно тупой или в нем нельзя ?!? хоть бы кто ченить сказал :roll:

Добавлено: Чт сен 24, 2009 18:21:07
Alexey1969
Compile, кнопка F10
Если я правильно понимаю....

Добавлено: Чт сен 24, 2009 18:25:10
Alexey1969
А что выдает после компиляции ? какой отчет ?

Добавлено: Чт сен 24, 2009 18:44:41
lluganet
выдает вот это:

Добавлено: Чт сен 24, 2009 18:48:58
Alexey1969
Скорее всего компилятор не подключен MPASMWIN. Языки высокого уровня сначало транслируются в ASM, а потом в HEX. Посмотри, файл ASM в дириктории проекта появляется ?

Добавлено: Чт сен 24, 2009 18:50:49
testerplus
lluganet писал(а):выдает вот это:


Программа-то не под HTPICC написана. Это тебе нужен компилятор CCS, хайтек такое не соберет. Ну, или программу переписать, хотя с CCS'а переводить на хайтек - можно запариться.

Добавлено: Чт сен 24, 2009 18:54:09
lluganet
ну переписать у меня ума не хватит :oops: :))) я для начала хотел поигратся с готовой прошивкой :)
а нет случаем компилятора который подойдет чтоб попроще , или ссылочку на него

Добавлено: Чт сен 24, 2009 19:05:18
testerplus
lluganet писал(а):ну переписать у меня ума не хватит :oops: :))) я для начала хотел поигратся с готовой прошивкой :)
а нет случаем компилятора который подойдет чтоб попроще , или ссылочку на него


Для чего подойдет? Для этой программы, или для ознакомления с Си?

Добавлено: Чт сен 24, 2009 19:10:48
lluganet
ну вобще для ознакомления с Си.
И CCS вроде тоже прикручивается к MPLAB. Хотя мне сама среда проектирования как такова и не нужна пока.
Я хотел взять готовый исходник, попробовать кое что поменять и посмотреть результат в протеусе.
Сама прошивка робочая, НЕХ в протеусе моделируется.

Добавлено: Чт сен 24, 2009 19:22:39
testerplus
lluganet писал(а):ну вобще для ознакомления с Си.
И CCS вроде тоже прикручивается к MPLAB. Хотя мне сама среда проектирования как такова и не нужна пока.
Я хотел взять готовый исходник, попробовать кое что поменять и посмотреть результат в протеусе.
Сама прошивка робочая, НЕХ в протеусе моделируется.


Для ознакомления - бери mikroC PRO. Это новая версия, но их ломают быстро.
Для чего посерьезнее - HT-PICC STD (PRO не бери). Последняя нормальная версия - std 9.60pl3.

CCS я бы не советовал.