macro pic?

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

macro pic?

Mensagempor diogo_18sp » 31 Ago 2009 23:36

ola boa noite.
Ja programo pic faz um ano e tenho uma duvida oque e um macro?como ele funciona ? se possivel pudesse me mostrar um exemplo.
programa em linguagem assembler obrigado... a uso o pic 16f877a.
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor scheleder » 01 Set 2009 08:17

LIST p=12F675 ;CHIP EM USO
INCLUDE "P12F675.INC" ;INCLUE DEFINICOES DO PIC12F875
ERRORLEVEL 0,-302 ;SUPRIME ERROS DE BANO
__CONFIG 0x31C4 ;BIT DE CONFIGURACAO

;************************************************************
; MACROS
;************************************************************
; COMANDOS PARA ALTERACAO DE PAGINA DE MEMORIA
BANK0 MACRO ;MACRO PARA SELECIONAR BANCO 0
BCF STATUS,RP0
ENDM ;FIM DA MACRO BANK0
BANK1 MACRO ;MACRO PARA SELECIONAR BANCO 1
BSF STATUS,RP0
ENDM ;FIM DA MACRO BANK1
;************************************************************
; VETOR DE RESET
;************************************************************
ORG 0x00 ;END INIC DE PROCESSAMENTO
GOTO INICIO
[]'s
João Scheleder Neto
scheleder
Nibble
 
Mensagens: 50
Registrado em: 23 Jan 2007 15:57
Localização: Colombo/PR

Re: macro pic?

Mensagempor fabim » 01 Set 2009 09:02

diogo_18sp escreveu:ola boa noite.
Ja programo pic faz um ano e tenho uma duvida oque e um macro?como ele funciona ? se possivel pudesse me mostrar um exemplo.
programa em linguagem assembler obrigado... a uso o pic 16f877a.


Makros são definições para compilador que substitue uma string por diretiva ou comando.

no assembly conforme o amigo colocou

#define bank0 bcf STATUS,RP0
#define bank1 bsf STATUS,RP0

veja eu criei duas constantes, que são chamadas de makro.

Ao que o compilador enchergar a string "bank0" ou "bank1", ele preenche esta linha de programa com a diretiva passada.

um outro exemplo.

#define LED0_on bsf PORTB,7
#define LED0_off bcf PORTB,7

quando o montador encontrar a palavra "LED0_on" ele sabe que é para.
bsf portb,7
etc...

Deu uma clareada ?

Uma makro pode ser apenas uma diretiva ou uma associação de diretivas. outro exemplo.

clock macro
bsf portb,7
nop
nop
bcf portb,7
nop
nop
endm

em qualquer parte do programa que você escrever
clock;
o montador vai adicionar 6 linhas de comando, sendo

bsf portb,7
nop
nop
bcf portb,7
nop
nop

cabrito ?
não sei como se escreve capith ou cabitu ou sei lá, num so italiano

Abraços

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor ze » 01 Set 2009 09:14

1 ano sofrendo com o asm... já tá quase na hora de aprender a programar de verdade. se não é masoquista, cogite aprender C e depois veja isto
http://www.asm51.eng.br/phpbb/viewtopic.php?t=7297
abç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor diogo_18sp » 01 Set 2009 12:12

lellis escreveu:1 ano sofrendo com o asm... já tá quase na hora de aprender a programar de verdade. se não é masoquista, cogite aprender C e depois veja isto
http://www.asm51.eng.br/phpbb/viewtopic.php?t=7297
abç


entao caroamigo gosto muito de assembler pois como sou tecnico eletronico acho que assembler voce consegue ver a fundo o funcionamento do circuito.
entao quando colocar clock exemplo do amigo que citou acima eu chamo essa rotina que fara a execuçao das rotinas e isso mesmo?
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor fabim » 01 Set 2009 12:16

diogo_18sp escreveu:
lellis escreveu:1 ano sofrendo com o asm... já tá quase na hora de aprender a programar de verdade. se não é masoquista, cogite aprender C e depois veja isto
http://www.asm51.eng.br/phpbb/viewtopic.php?t=7297
abç


entao caroamigo gosto muito de assembler pois como sou tecnico eletronico acho que assembler voce consegue ver a fundo o funcionamento do circuito.
entao quando colocar clock exemplo do amigo que citou acima eu chamo essa rotina que fara a execuçao das rotinas e isso mesmo?


não primo, a macro,.....
é como se fosse uma tecla de atalho para escrever N comandos.
ele não chama a rotina,
Se você chamar 10X o "clock", por 10X o montador irá escrever tudo que esta dentro da definição de macro com nome CLOCK.

Abraços
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor diogo_18sp » 01 Set 2009 12:24

fabim escreveu:
diogo_18sp escreveu:
lellis escreveu:1 ano sofrendo com o asm... já tá quase na hora de aprender a programar de verdade. se não é masoquista, cogite aprender C e depois veja isto
http://www.asm51.eng.br/phpbb/viewtopic.php?t=7297
abç


entao caroamigo gosto muito de assembler pois como sou tecnico eletronico acho que assembler voce consegue ver a fundo o funcionamento do circuito.
entao quando colocar clock exemplo do amigo que citou acima eu chamo essa rotina que fara a execuçao das rotinas e isso mesmo?


não primo, a macro,.....
é como se fosse uma tecla de atalho para escrever N comandos.
ele não chama a rotina,
Se você chamar 10X o "clock", por 10X o montador irá escrever tudo que esta dentro da definição de macro com nome CLOCK.

Abraços


caro fabim agora acho que entendi a funçao da macro.obridado
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x