Página 1 de 1

Diretivas HIGH e LOW

MensagemEnviado: 15 Nov 2012 11:10
por bug
Bom dia pessoal, estou precisando ler sobre as diretivas HIGH e LOW , baixei vários PDFs da Micro Chip e não achei nada. Algum colega teria algo sobre?
Só o que sei é que define byte alto e byte baixo para um dado de 16 bits.
Obrigado.
Bug
Boas férias a todos. :P

MensagemEnviado: 15 Nov 2012 13:17
por vtrx
Voce mesmo postou a definição...

Re: Diretivas HIGH e LOW

MensagemEnviado: 15 Nov 2012 15:35
por Rodrigo_P_A
bug escreveu:Bom dia pessoal, estou precisando ler sobre as diretivas HIGH e LOW , baixei vários PDFs da Micro Chip e não achei nada. Algum colega teria algo sobre?
Só o que sei é que define byte alto e byte baixo para um dado de 16 bits.
Obrigado.
Bug
Boas férias a todos. :P


depende do contexto

HIGH LOW em para um dado de 16 bits pode ser byte alto e byte baixo

HIGH LOW para estado do pino pode ser VCC GND

e assim por diante, difícil explicar desse jeito, num tem regra pra isso, depende do contexto, e que diretiva é essa?

Re: Diretivas HIGH e LOW

MensagemEnviado: 15 Nov 2012 15:57
por EvandrPic
HIGH, LOW e UPPER são operadores aritméticos do compilador MPASM. Não são diretivas.
Veja mais em DS33014K:
http://ww1.microchip.com/downloads/en/D ... 33014K.pdf

page 40 que fica na página 48 deste PDF:
3.5 ARITHMETIC OPERATORS AND PRECEDENCE
Arithmetic operators may be used with directives and their variables as specified in the table below.

Note: These operators cannot be used with program variables. They are for use with directives only.

The operator order in the table also corresponds to its precedence, where the first operator has the highest precedence and the last operator has the lowest precedence.
Precedence refers to the order in which operators are executed in a code statement.

...

page 142 que fica na página 150 deste PDF:
6.4 LOW, HIGH AND UPPER OPERATORS
Low, high and upper operators are used to return one byte of a multi-byte label value.
If low is used, only bits 0 through 7 of the expression will be used. If high is used, only bits 8 through 15 of the expression will be used. If upper is used, only bits 16 through 21 of the expression will be used.
...



bug escreveu:Bom dia pessoal, estou precisando ler sobre as diretivas HIGH e LOW , baixei vários PDFs da Micro Chip e não achei nada. Algum colega teria algo sobre?
Só o que sei é que define byte alto e byte baixo para um dado de 16 bits.
Obrigado.
Bug
Boas férias a todos. :P

MensagemEnviado: 15 Nov 2012 19:19
por bug
Obrigado a todos, estava procurando em diretivas porisso não encontrava!
Achei que seria diretivas após ler este post em MikroElektronika:

MPlab uses the HIGH and LOW directives to return the high and low bytes when reading a table. MikroC rejects these directives.

Is there a workaround:

example:

asm {
movwf _temp
movlw HIGH (TABLE) // error
movwf PCLATH
movlw 0x2
mulwf temp
movf PRODH,w
addwf PCLATH,f
movf PRODL, w
addlw LOW (TABLE) // error
}
movwf PCL

Bom feriado!