Autor Tema: manejar pines de entrada salida en ccs.  (Leído 23443 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
manejar pines de entrada salida en ccs.
« en: 04 de Julio de 2007, 17:48:11 »
hola, tengo una duda con el ccs: ¿puedo para modificar las salidas hacer esto:

PORTB=0;

en lugar de esto: output_high(PORTB,1)

por ejemplo, (quizás haya algun error en la sintaxis pero la idea es si puedo utilizar la variable directamente e igualarla a cero.

un saludo.

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: manejar pines de entrada salida en ccs.
« Respuesta #1 en: 04 de Julio de 2007, 19:29:12 »
En CCS lo puedes hacer, pero antes tienes que definir la variable PORTB haciendo:
Código: C
  1. #byte PORTB = 0x06  //Direccion del puerto B

saludos,
Pereira - Colombia

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: manejar pines de entrada salida en ccs.
« Respuesta #2 en: 04 de Julio de 2007, 19:34:38 »
Se puede hacer de varias maneras:

1º)
#byte PORTB = 0x06
PORTB.1 = 1;

2º)
#bit Patilla_Bombilla = 0x06.1
Patilla_Bombilla = 1;

3º)
#define PORTB 0x06
#bit Patilla_Bombilla = PORTB.1
Patilla_Bombilla = 1;

4º)
PIN_B1 = 1;

Saludos
« Última modificación: 04 de Julio de 2007, 19:42:12 por jfh900 »
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: manejar pines de entrada salida en ccs.
« Respuesta #3 en: 05 de Julio de 2007, 00:24:47 »
por eso no me gusta el CCS  :mrgreen: debido a que no puedes operar directamente con los registros del pic, sino que tienes que estar definiendolos antes.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: manejar pines de entrada salida en ccs.
« Respuesta #4 en: 05 de Julio de 2007, 06:18:51 »
¿No entiendo lo que quieres decir que hay que definir antes los registros del pic?. Si metes la definición del puerto en el .h del pic correspondiente, con una vez que lo definas, se termino la historia. ¿Lo que no sé es por que no lo han incluido los del CCS?.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: manejar pines de entrada salida en ccs.
« Respuesta #5 en: 05 de Julio de 2007, 10:53:58 »
si, me referia a cuando hay que hacer:

#byte portb = 0x06

por ejemplo si quiero usar el option_reg de la gama 16FXXX tendria que ponerlo o redefinirlo, o algun otro registro especial. Pues las otras instrucciones que manejan este registro (option_reg) generan mucho codigo hex, y asi mismo en otras funciones.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: manejar pines de entrada salida en ccs.
« Respuesta #6 en: 05 de Julio de 2007, 18:14:43 »
y no habrá por ahì algún fichero para incluír que tenga las direcciones grabadas?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18269
    • MicroPIC
Re: manejar pines de entrada salida en ccs.
« Respuesta #7 en: 06 de Julio de 2007, 02:03:36 »
La cosa es que el CCS tiene una filosofía algo diferente al resto de compiladores. Es como subir un nivel, aunque no todos los programadores lo vemos como una ventaja.

La diferencia, por ejemplo, es que mientras que para configurar el oscilador en cualquier otro compilador hay que escribir en el registro OSCCON, mientras que en CCS hay un comando llamado "setup_oscillator".

Esta misma filosofía se traslada a la gestión de los puertos. En CCS lo habitual es utilizar el input(), output_low(), output_high() que ya hacen la gestión del TRIS que corresponda.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re: manejar pines de entrada salida en ccs.
« Respuesta #8 en: 06 de Julio de 2007, 04:13:56 »
Y CCS tiene tambien una característica de "alto" nivel que puede volver loco a cualquiera si no la tiene en cuenta.

CCS admite unas directivas de compilación que le dicen al compilador cómo debe tratar los TRIS de puerto (configuración bit a bit de cada pin de un puerto para indicar si es de entrada, de salida o flotante)

Estas directivas son:

  • USE FAST_IO
  • USE FIXED_IO
  • USE_STANDARD_IO

Si declaramos un puerto como #USE FAST_IO(X) es el usuario quien debe asegurarse de que el sentido del pin es el correcto y para ello debe colocar antes de leer o escribir en el puerto correspondiente el SET_TRIS_X(0b00000000) para indicar el uso de entrada o salida de cada bit del puerto.

Si declaramos un puerto como #USE FIXED_IO(X_OUTPUTS=1,3,5,7) el compilador genera e inserta en tu código los SET_TRIS_X(0b10101010) correspondientes a dicha declaración independiente del uso que tus instruciones hagan después de dichos pines. Si has declarado con FIXED_IO de salida el pin 1 del puerto X y después lo lees el compilador no hará nada y estarás leyendo un puerto de salida.

Si por último declaramos el puerto como #USE STANDARD_IO(X) el compilador generará automáticamente e insertará antes de cualquier operación de entrada o salida de cualquier pin del puerto X los SET_TRIS_X() correspondientes a la instrución que le sigue. Esto hace que los TRIS siempre estén de acuerdo con la instrucción a ejecutar. Si colocamos en nuestro código un OUTPUT_HIGH(PIN_B0) y el puerto B está declarado como #USE STANDARD_IO(B) justo antes del output habrá un TRIS declarando el PIN_B0 como salida, si acontinuación ponemos un INPUT_(PIN_B0) el compilador pondrá ahora un TRIS para declarar PIN_B0 como entrada.

Este #USE STANDARD_IO(X) es el modo POR DEFECTO de todos los puertos en CCS si no se declara lo contrario y por ello si no usamos cualquiera de los otros dos tipos de use de los puertos LOS TRIS QUE NOSOTROS PONGAMOS NO VALEN PARA NADA porque el CCS LOS REDECLARA A PARECER EN FUNCION DE LAS INSTRUCCIONES DE NUESTRO CÓDIGO SEAN DE ENTRADA O DE SALIDA.

Un saludo a todos.




« Última modificación: 06 de Julio de 2007, 04:16:27 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: manejar pines de entrada salida en ccs.
« Respuesta #9 en: 06 de Julio de 2007, 18:01:13 »
gracias por la explicación redpic. La verdad es que me acabo de quedar algo desilusionado con el ccs. ¿qué otro compilador sería recomendable? El picc de hi-tech por ejemplo?

un saludo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re: manejar pines de entrada salida en ccs.
« Respuesta #10 en: 06 de Julio de 2007, 18:09:46 »
El CCS no es mal compilador del todo pero, como todo en este mundo, tiene sus particularidades que es conveniente conocer para no meter la pata demasiado. Realmente no me ha costado mucho adaptarme a él, tiene una documentación que no es mala, y eso sí trae mas de un centenar de ejemplos de códigos fuente para casi todo lo que hacen los PIC's. No sería una mala elección.

 
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: manejar pines de entrada salida en ccs.
« Respuesta #11 en: 07 de Julio de 2007, 03:14:33 »
claro el HI-TECH tambien es bueno. Todos son buenos pero lo define el estilo de programar de cada uno.
« Última modificación: 07 de Julio de 2007, 03:25:50 por micro_cadaver »
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado zurdo

  • PIC10
  • *
  • Mensajes: 9
Re: manejar pines de entrada salida en ccs.
« Respuesta #12 en: 07 de Noviembre de 2007, 20:20:25 »
hola quisiera informacion sobre donde puedo localizar un tutorial sobre CCS  :-/

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: manejar pines de entrada salida en ccs.
« Respuesta #13 en: 07 de Noviembre de 2007, 22:56:25 »
pues estas sentado sobre una banca de oro.  :mrgreen:
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: manejar pines de entrada salida en ccs.
« Respuesta #14 en: 08 de Noviembre de 2007, 08:31:44 »
Hola zurdo, ¿por que no pruebas con Google?



Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús