Autor Tema: Duda:Sacar un uno por una pata  (Leído 4038 veces)

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

Desconectado txu2

  • PIC10
  • *
  • Mensajes: 3
Duda:Sacar un uno por una pata
« en: 24 de Marzo de 2006, 15:16:00 »
Estoy programando en C con dsPic, estoy haciendo lo más básico,
TRISB=0
PORTB=0x1

se supone que con eso dentro d mi programa debería hacer k salga un uno por mi pata?? o como va eso? tengo k poner algo mas? no tengo k declarar esas variables no? pork con las libreria k adjunto ya las reconoce?
yo solo kiero encender un led. al compilar no da error pero luego en el debbug no cambia el estado d esa variable y no sale nada, no he probado a  grabar el probramita.

Desconectado SnackySmores

  • PIC10
  • *
  • Mensajes: 7
RE: Duda:Sacar un uno por una pata
« Respuesta #1 en: 24 de Marzo de 2006, 23:44:00 »
prueba a usar LATB en lugar de PORTB Vacilando

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Duda:Sacar un uno por una pata
« Respuesta #2 en: 25 de Marzo de 2006, 00:38:00 »
¿Sabes cuándo hay que usar LATx y cuándo PORTx?, ¿cuál es la diferencia?

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Duda:Sacar un uno por una pata
« Respuesta #3 en: 25 de Marzo de 2006, 08:30:00 »
txu2 suponiendo que deshabilitaste todo módulo que te pueda interferir con la salida que pretendes manejar, has caso a lo que dice nocturno que a su vez es lo que dice microchip.


. Para sacar un dato usa los registros LATx.

. Para leer un dato usa los registros PORTx


Esto es una mejora en los 18,  24 y dsPIC que evitan el uso de los shadow registers.... pero bueno no nos la compliquemos, básicamente con lo que está arriba te manejaras perfectamente.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

dsPIC30f4011

  • Visitante
RE: Duda:Sacar un uno por una pata
« Respuesta #4 en: 28 de Marzo de 2006, 16:09:00 »
Saludos para sacar encender solo un pin de algun puerto debes hacer asi

Supongamos que deseamos encender un led en el pin RE0

PORTEbits.RE0 = 1; //enciende led
PORTEbits.RE0 = 0; //apaga led

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Duda:Sacar un uno por una pata
« Respuesta #5 en: 28 de Marzo de 2006, 22:14:00 »
Escrito originalmente por dsPIC30f4011
Saludos para sacar encender solo un pin de algun puerto debes hacer asi

Supongamos que deseamos encender un led en el pin RE0

PORTEbits.RE0 = 1; //enciende led
PORTEbits.RE0 = 0; //apaga led



Hasta donde yo sé se hace asi

LATEbits.RE0 = 1; //enciende led
LATEbits.RE0 = 0; //apaga led

El uso de los latchs evita la necesidad de registros shadow ya que al trabajar en alta frecuencia se hace indispensable.  El uso de los latchs evita todo esta gestión.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Dextrom666

  • PIC10
  • *
  • Mensajes: 9
Re: Duda:Sacar un uno por una pata
« Respuesta #6 en: 24 de Abril de 2006, 23:03:32 »
yo no uso el C para programar dspic, uso el asm.
pero lo ke se es ke asi se hace para prender y apagar leds en C.

/*****************************************/

LATEbits.RE0 = 1; //enciende led
; aqui se debe poner un tiempo de retardo para ke lo puedas visualizar
; encendido ==> espera un tiempo ==> apagado.
; de lo contrario ni te daras cuenta ke se prendio por un momento.
LATEbits.RE0 = 0; //apaga led

/****************************************/

lo ke aparezca por el LATE , aparecera por el port E.
tambien se puede hacer con el PORTE directamente al menos en asm,
ami no me trae problemas en el asm.

Desconectado Vayadespiste

  • PIC12
  • **
  • Mensajes: 53
Re: Duda:Sacar un uno por una pata
« Respuesta #7 en: 24 de Mayo de 2006, 13:54:19 »
No se si será el caso, pero en ensamblador hay que configurar los pines del puerto b en que modo van a funcionar, es decir si analógico o digital, en el caso de ser digital y todos los pines esto corresponde 0xFFFF en el registro ADPCFG, no estoy seguro pero creo que en "C" basta con poner ADPCFG = 0xFFFF; (En el caso que quieras poner todo el puertob digital)

Desconectado JavisusII

  • PIC12
  • **
  • Mensajes: 79
Re: Duda:Sacar un uno por una pata
« Respuesta #8 en: 24 de Mayo de 2006, 18:41:10 »
Según me consta una escritura en el registro LATx tiene el mismo efecto que en PORTx,
el problema aparece  en la lectura del  PORTx y más concretamente en instrucciones de lectura,modificación,escritura
como BSET,etcc .
La lectura de PORTx lee directamente las entradas
La lectura del LATx lee el registro cerrojo, y no el valor instantáneo del valor de entrada.



 
Xavi (Barcelona)


 

anything