Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Can't get Compiler to udnerstand basic register names
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=14255
Страница 1 от 1

Автор:  million [ Съб Яну 02, 2016 11:01 pm ]
Заглавие:  Can't get Compiler to udnerstand basic register names

Имаме някакъв ПИК, MPLAB v8.92, CCS compilator няколко прости принципни въпроси:
1. Как се обръщате директно към регистрите. Има *.inc файлове с мапване на регистрите към имената, но май са с друг синтаксис и CCS не ги приема. Произволно примерче от INC файла:

INDF0 EQU H'0FEF'
INTCON3 EQU H'0FF0'
INTCON2 EQU H'0FF1'

Във форума има много примери с директно обръщане към регистрите, но кода не тръгва. Знам че може да се мапне с #BIT, но ми се струва безумно да ги мапвам един по един...

#include <18F1220.h> и #device PIC18F1220 също не помагат в случая

Как да заработят примерно:

TMR2IF_bit = 0;
OPTION&=~0b10000000;
switch(PORTB&0b11);

2. Харесвам си някой регистър от даташийта на процесора... и веднага идва въпроса как да му видя адреса.
3. Може ли в Mplab да видя *.lst file с имената на регистрите, а не както в ми го дава с кодовете им:

020 CFE2 MOVFF 0xfe2, 0xa
024 CFD9 MOVFF 0xfd9, 0xb
028 CFDA MOVFF 0xfda, 0xc

Благодаря, на отделилите време да прочетат, а ако и някой напише нещоооо...

Автор:  Zeus [ Нед Яну 03, 2016 5:24 pm ]
Заглавие:  Re: Can't get Compiler to udnerstand basic register names

Здравей и Честита Нова Година!

Адресите на регистрите можеш да ги видиш в дейташийта: Примерно за твоя процесор - 5.9.2 SPECIAL FUNCTION REGISTERS
Също погледн хелпа на CCS, примерно командите: input_x(), output_x(), output_low(), output_high()

Прегледай също .h файла (В твоя случай 18F1220.h), в него са дадени достъпните команди за дадения контролер)

Успех

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/