TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Sir_Egnos en 29 de Julio de 2009, 14:52:30

Título: Nueva consulta sobre definicion de variables.
Publicado por: Sir_Egnos en 29 de Julio de 2009, 14:52:30
Bien, tengo una nueva duda y os la expongo para que como de constumbre me ayudeis.

Si creo una variable llamada mapa_lcd que es de un byte, yo se que con bit_set y bit_clear puedo acceder a un bit de esa variable para ponerlo a 0 o a 1. Pero como se haria para definir un nombre y que remita directamente a ese bit.

Yo hice una cosa asi :

#Define X1 mapa_lcd.1

creo la variable mapa_lcd como int.

Obviamente cuando hago un bit_set(X1); no da error pero no hace lo que yo quiero. Se que mi error esta en el concepto.
Alguien me podria decir como se haria correctamente esto que deseo hacer?

Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: AKENAFAB en 29 de Julio de 2009, 15:09:31
Viene en la ayuda de CCS C #BIT

Syntaxos:
 #bit  id = x.y
 
Elementos:

id es un identificador  valido en C       <---- Esto seria el nombre que tu asignes , supongo que al referirse valido no se renombre con alguno existente

x es una constante o variable del C    <--- Es tu Variable que en este caso lo llamas "mapa_lcd"

y es una constante de 0-7                  <--- El bit a trabajar

Viene este ejemplo

int result;                  // <-- La Variable o constante

#bit result_odd = result.0  // result_odd es el identificador(le llamaré label xD) y asignas igualdad al bit 0 de la variable/constante result

...

if (result_odd)              // y Pues aqui preguntan si el bit 0 de la variable/constante result es 1


Pero xD me quedo aqui porque no le entiendo bien y pues también me servirá.

Código: [Seleccionar]
Int mapa_lcd;

#BIT x1 = mapa_lcd.1   // refiriendome al bit 1


y aplicandolo sería

x1=1  // bit 1 del byte mapa_lcd es puesto a 1

¿esto es correcto?




Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: Sir_Egnos en 29 de Julio de 2009, 15:15:18
la idea si, lo voy a compilar a ver si funciona como quiero.

Gracias.


P.d. Mi ingles es malisimo y hay veces que no comprendo bien el manual de ccs. Gracias por vuestra paciencia.

Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: Sir_Egnos en 29 de Julio de 2009, 15:30:02
Si es lo que queria, pero no me compilaba por que hay que definir la variable y justo despues poner los #BIT   , sino me da que hay que decirle en la posicion de memoria en la que esta. Vuelvo a decir que mi eingles es malisimo pero es lo que entiendo del manual.

Gracias de nuevo.

El ejemplo que compilo bien :

int salidas_accel;
#BIT X1 = salidas_accel.0
#BIT X10= salidas_accel.1
#BIT x100=salidas_accel.2

Luego ya puedo utilizar el output_high,low,togle que es lo que queria. 

Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: jhozate en 29 de Julio de 2009, 15:32:26
Citar
P.d. Mi ingles es malisimo y hay veces que no comprendo bien el manual de ccs. Gracias por vuestra paciencia.

descargate este (http://www.4shared.com/file/111113641/5a2c63a2/Manual_Compilador_C_Para_PICs.html) pdf, es la misma ayuda de ccs pero en español

saludos
Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: Sir_Egnos en 29 de Julio de 2009, 15:35:44
Gracias jhozate.
Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: AKENAFAB en 29 de Julio de 2009, 15:38:38

Probe el ejemplito y funciona

char leds;
#bit led1 = leds.1
Título: Re: Nueva consulta sobre definicion de variables.
Publicado por: Sir_Egnos en 29 de Julio de 2009, 15:59:16
Si, si le dices led1 = 1; va ok, pero si le dices output_high(led1) no da error pero no lo activa.