Página 1 de 1

inverter nome #define, CCS Compilador

MensagemEnviado: 21 Mar 2021 20:00
por erpgc82
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

Re: inverter nome #define, CCS Compilador

MensagemEnviado: 21 Mar 2021 20:18
por vtrx
Esclarece a sua ideia,porque inverter nome de pinos?

Re: inverter nome #define, CCS Compilador

MensagemEnviado: 21 Mar 2021 20:39
por erpgc82
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 ?

Re: inverter nome #define, CCS Compilador

MensagemEnviado: 22 Mar 2021 00:06
por andre_luis
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.

Re: inverter nome #define, CCS Compilador

MensagemEnviado: 22 Mar 2021 00:36
por erpgc82
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();