TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
02 de Septiembre de 2014, 13:38:45

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
347961 Mensajes en 39041 Temas por 40661 Usuarios
Último usuario: otrodesion
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  Lenguaje C para microcontroladores PIC (Moderadores: Modulay, pikman, pocher, vszener, Suky)
| | |-+  manejar pines de entrada salida en ccs.
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Marcar como favorito Imprimir
Autor Tema: manejar pines de entrada salida en ccs.  (Leído 6338 veces)
black_flowers
PIC18
****
Desconectado Desconectado

España España

Mensajes: 450


« : 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.
En línea
dhmejia
Colaborador
PIC18
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 252



« Respuesta #1 : 04 de Julio de 2007, 19:29:12 »

En CCS lo puedes hacer, pero antes tienes que definir la variable PORTB haciendo:
Código
GeSHi (c):
  1. #byte PORTB = 0x06  //Direccion del puerto B

saludos,
En línea

Pereira - Colombia
jfh900
Moderadores
DsPIC30
*****
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 3553



« Respuesta #2 : 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 » En línea

* 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
micro_cadaver
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 2102


"La complejidad del hombre se basa en excusas."


WWW
« Respuesta #3 : 05 de Julio de 2007, 00:24:47 »

por eso no me gusta el CCS  Mr. Green debido a que no puedes operar directamente con los registros del pic, sino que tienes que estar definiendolos antes.
En línea

a cosechar!!!... Razz
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com
jfh900
Moderadores
DsPIC30
*****
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 3553



« Respuesta #4 : 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
En línea

* 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
micro_cadaver
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 2102


"La complejidad del hombre se basa en excusas."


WWW
« Respuesta #5 : 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.
En línea

a cosechar!!!... Razz
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com
black_flowers
PIC18
****
Desconectado Desconectado

España España

Mensajes: 450


« Respuesta #6 : 05 de Julio de 2007, 18:14:43 »

y no habrá por ahì algún fichero para incluír que tenga las direcciones grabadas?
En línea
Nocturno
Administrador
DsPIC33
*******
Desconectado Desconectado

Sexo: Masculino
Cuba Cuba

Mensajes: 16968



WWW
« Respuesta #7 : 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.
En línea

Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ
RedPic
Administrador
DsPIC33
*******
Desconectado Desconectado

Sexo: Masculino
Tibet Tibet

Mensajes: 5190



WWW
« Respuesta #8 : 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 » En línea

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

España España

Mensajes: 450


« Respuesta #9 : 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.
En línea
RedPic
Administrador
DsPIC33
*******
Desconectado Desconectado

Sexo: Masculino
Tibet Tibet

Mensajes: 5190



WWW
« Respuesta #10 : 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.

 
En línea

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania
micro_cadaver
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 2102


"La complejidad del hombre se basa en excusas."


WWW
« Respuesta #11 : 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 » En línea

a cosechar!!!... Razz
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com
zurdo
PIC10
*
Desconectado Desconectado

Venezuela Venezuela

Mensajes: 9


« Respuesta #12 : 07 de Noviembre de 2007, 20:20:25 »

hola quisiera informacion sobre donde puedo localizar un tutorial sobre CCS  rebotando
En línea
micro_cadaver
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 2102


"La complejidad del hombre se basa en excusas."


WWW
« Respuesta #13 : 07 de Noviembre de 2007, 22:56:25 »

pues estas sentado sobre una banca de oro.  Mr. Green
En línea

a cosechar!!!... Razz
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com
jfh900
Moderadores
DsPIC30
*****
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 3553



« Respuesta #14 : 08 de Noviembre de 2007, 08:31:44 »

Hola zurdo, ¿por que no pruebas con Google?



Un saludo
En línea

* 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
PalitroqueZ
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Islas Georgia del Sur y Sandwich del Sur Islas Georgia del Sur y Sandwich del Sur

Mensajes: 5007



WWW
« Respuesta #15 : 08 de Noviembre de 2007, 19:03:15 »

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.

sip micro.. pero observa que hay algo importante, mientras se pueda definir cualquier cosa es valioso, hecho que le he visto al hitech (sin mencionar que hay funciones que no trae y hay que hacerlas o buscar el código no oficial por internet)



zurdo el principal manual lo consigues en http://www.ccsinfo.com/downloads/CReferenceManual.pdf

uno en castellano: http://www.eupmt.es/cra/inform/Manual_Compilador_C_Para_PICs.pdf
« Última modificación: 08 de Noviembre de 2007, 19:07:16 por PalitroqueZ » En línea

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek
TODOPIC
   

 En línea
Páginas: [1] Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.057 segundos con 23 consultas.