inverter nome #define, CCS Compilador

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

inverter nome #define, CCS Compilador

Mensagempor erpgc82 » 21 Mar 2021 20:00

Olá amigos, como faço para inverter os nomes de pinos, dependendo do valor de uma variável ou de um endereço de memória?

Exemplo:
se uma condição for X:
#define SENSOR_1 PIN_C1
#define SENSOR_2 PIN_C2

Se uma condição for Y:
#define SENSOR_2 PIN_C2
#define SENSOR_1 PIN_C1
erpgc82
Bit
 
Mensagens: 18
Registrado em: 03 Mai 2020 01:54
Localização: Brazil

Re: inverter nome #define, CCS Compilador

Mensagempor vtrx » 21 Mar 2021 20:18

Esclarece a sua ideia,porque inverter nome de pinos?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: inverter nome #define, CCS Compilador

Mensagempor erpgc82 » 21 Mar 2021 20:39

vtrx escreveu:Esclarece a sua ideia,porque inverter nome de pinos?


Olá amigo vtrx

Tenho um equipamento que gira num sentido A, e lê o sensor 1, dezenas de vezes. (como o sentido horário).
Mas dependendo do lugar que ele está instalado, o sentido não é horário, é ant-horário, então aí o sensor 1, irá girar no sentido B (sentido ant horário)


clareou ?
erpgc82
Bit
 
Mensagens: 18
Registrado em: 03 Mai 2020 01:54
Localização: Brazil

Re: inverter nome #define, CCS Compilador

Mensagempor andre_luis » 22 Mar 2021 00:06

se uma condição for X:
#define SENSOR_1 PIN_C1
#define SENSOR_2 PIN_C2

Se uma condição for Y:
#define SENSOR_2 PIN_C2
#define SENSOR_1 PIN_C1

Do modo como voce sugeriu acima nao funciona, o #define é utilizado pelo compilador antes da compilação, então mudar a pinagem em tempo de execução desse jeito é impossivel. Por outro lado isso pode ser feito tranquilamente por um if...else, criando uma função que retorna o valor de um pino ou de outro em função do valor da entrada.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: inverter nome #define, CCS Compilador

Mensagempor erpgc82 » 22 Mar 2021 00:36

aluis-rcastro escreveu:
se uma condição for X:
#define SENSOR_1 PIN_C1
#define SENSOR_2 PIN_C2

Se uma condição for Y:
#define SENSOR_2 PIN_C2
#define SENSOR_1 PIN_C1

Do modo como voce sugeriu acima nao funciona, o #define é utilizado pelo compilador antes da compilação, então mudar a pinagem em tempo de execução desse jeito é impossivel. Por outro lado isso pode ser feito tranquilamente por um if...else, criando uma função que retorna o valor de um pino ou de outro em função do valor da entrada.


Valeu amigo, ja verifiquei que vai ser assim mesmo, no if else...

Obrigado...
tanks();
erpgc82
Bit
 
Mensagens: 18
Registrado em: 03 Mai 2020 01:54
Localização: Brazil


Voltar para PIC

Quem está online

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

x