Autor Tema: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550  (Leído 7848 veces)

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

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #15 en: 16 de Octubre de 2009, 18:02:27 »
Podes hacerlo metiendo una porción en asembler o algo así por ejemplo (configuracion del modo captura)

Código: [Seleccionar]
//------------------------------------------------------------------------------------
//definiciones

#byte CCP1CON =0x17
#byte TODAS_INT_ENABLE = 0x8B                  //habilitar todas las interrupciones

#bit CCP1M3 = CCP1CON.3
#bit CCP1M2 = CCP1CON.2
#bit CCP1M1 = CCP1CON.1
#bit CCP1M0 = CCP1CON.0
#bit CCP1ENABLE = 0x8C.2
#bit FLANCOS_Asen_O_Desen = 0x81.6              // 1->rising 0->falling

char i=0;
char bcd[10]={0b0000,0b0001,0b0010,0b0011,0b0100,0b0101,0b0110,0b0111,0b1000,0b1001};//BCD 0-9
boolean flanco=0;


//----------------------------------------------------------------------------------------

Código: [Seleccionar]

#INT_EXT

void interrupcion_ext(){
    flanco=!flanco;                         //complementa valor de modo

   if(!flanco)    CCP1M0 = 0;
//      setup_ccp1(CCP_CAPTURE_RE);          //SI -> ccp1 modo captura configurado flanco ascendente
   else   CCP1M0 = 1;
//      setup_ccp1(CCP_CAPTURE_FE);          //NO -> ccp1 modo captura configurado flanco descendente

}

espero te sirva. Saludos.
« Última modificación: 16 de Octubre de 2009, 18:04:48 por cerebro »
LAS MALVINAS SON ARGENTINAS!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #16 en: 16 de Octubre de 2009, 21:15:46 »
Defines el bit que quieres modificar:

Código: C
  1. #bit TXEN=0x98.5  // Para 16F87XA

Y luego lo trabajas:

Código: C
  1. TXEN=1;
  2. TXEN=0;


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Jisus

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #17 en: 16 de Octubre de 2009, 22:35:31 »
gracias SUKY y Cerebro... osea si no entendi mal yo configuro por ejemplo

#bit TXEN=0x98.5;

 y luego lo uso como si fuera variable... y el mismo compilador se encarga de saber q es cada definicion??? osea si uso los mismo nombres de los registros de la hoja de datos del micro...

 si es asi lo unico q me falta entender q es ese 98 y el punto 5... ????? no entiendo que es? no se supone q el TXEN es un solo bit???

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #18 en: 16 de Octubre de 2009, 23:13:25 »
No, en 0x98 si miras el datasheet del 16F87xA te das cuenta que es la dirección de TXSTA, y el 5 es la posición del bit. Muy clarito  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #19 en: 16 de Octubre de 2009, 23:15:36 »
 0x98  es la dirección de memoria (SRF) que estas accediendo con la directiva #byte, o sea el registro (byte) que querés modificar se encuentra en la dirección 0x98 y al utilizar 0x98.5 estas accediendo al quinto bit del registro directamente. El compilador no interpreta nombres ni nada por el estilo.  Podrías utilizar #byte Txenable o cualquier otro y el programa va a funcionar igual. una cosita  el "0x" denota un numero hexadecimal por ejemplo 0xFF o como en este caso 0x98
 saludos!!  ;-) 
LAS MALVINAS SON ARGENTINAS!

Desconectado Jisus

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #20 en: 16 de Octubre de 2009, 23:25:55 »
jajjaja gracias chicos...
lo del hexa lo sabia jajajja... y lo otro me lo imaginaba... es mas despues de la pregunta me puse a buscar en la hoja de datos a ver si era eso... pero no lo encontre jejeje despues lo voy a buscar mejor porq es bastante larga la del 18f4550....

muchas gracias por la mano... yo utilizo para un trabajo un micro freescale q los regitros estan todos definidos en la libreria del micro por eso no entendia como lo maneja el CCS

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #21 en: 16 de Octubre de 2009, 23:56:52 »
En el caso del 18F4550 seria:

Código: C
  1. #bit TXEN=0x0FAC.5

Página 68  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Jisus

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #22 en: 17 de Octubre de 2009, 00:26:54 »
muchisimas gracias SUKY... ehi estan todos jajjaja... q maestro.... esperemos q mañana solucione lo del chip

Un Abrazo!!!

Desconectado Jisus

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #23 en: 17 de Octubre de 2009, 10:42:55 »
no funciona... seteo en 0 el registro TXEN y es como q no me deja tomar el control porq no lo puedo hacer bajar a 0 nunca.... q bronca

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f45
« Respuesta #24 en: 17 de Octubre de 2009, 14:05:23 »
Hola.

Al fin toco por SOFT?

Si quieres podrías gestionar la rutina de recepción por interrupción asignando el pin Rx a un pin con interrupcion (int_EXT, int_CCPx).

Saludos
El papel lo aguanta todo

Desconectado Jisus

  • PIC10
  • *
  • Mensajes: 31
Re: Ayuda para activar y desactivar el puerto rs232 por Hard en CCS con el 18f4550
« Respuesta #25 en: 17 de Octubre de 2009, 14:07:59 »
bueno si alguien tiene otra manera de tomar el control del TX que me ayude...
lo q necesito es que quede en cero con el puerto serie por hard activado... pero no me me emule el puerto porq sino no me lee los datos... me lee 0x00 si lo emula...

yo opte por usar de tx cualquier otro pin y me lee perfecto... el tema q ahora no puedo escribir los registros...

asi q si alguien tiene otro metodo...


 

anything