Autor Tema: Quiero la pata a 0V  (Leído 1613 veces)

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

Desconectado totpic

  • PIC10
  • *
  • Mensajes: 7
Quiero la pata a 0V
« en: 29 de Septiembre de 2006, 16:11:18 »
Hola a todos, una vez mas por aqui, estoy haciendo un pequeño trasponder para una tonteria con el coche pero necesito que la pata de transmision este a nivel bajo  "0V" mientras no transmito nada. Querria descartar la opcion de invertir la tension por hardware extreno al pic o invertir la señal con el use rs232 y la directiva invert.
El programa es un bucle ciclico que envia PEPE 5 veces y descansa (el descanso lo he puesto antes porque pensaba que iva a funcionar al reves mejor), en ese descanso es cuando necesito la pata de TX a 0V.
En lugar de un while reinicia porque es mejor para sincronizxacion de tramas.

Gracias a todos y os pego el codigo.

Código: [Seleccionar]
#include <16f628A.h>
#fuses HS,NOWDT,NOPROTECT,PUT
#use delay (clock=4000000)
#use rs232(baud=240, xmit=PIN_B2, rcv=PIN_B1)

#define led1 PIN_A1
#define led2 PIN_A0
#define bot1 PIN_A3
#define bot2 PIN_A2
#define TX PIN_B2
#define RX PIN_B1


///PROGRAMA
void main(void){

int i=0;

   disable_interrupts(GLOBAL);

   output_bit(led1,0);
   output_bit(TX,0);
   delay_ms(1000);
   output_bit(led1,1);
   while(i<5){
               printf("PEPE");
               i++;
               delay_ms(2);
    }
    reset_cpu();
}
« Última modificación: 29 de Septiembre de 2006, 17:23:36 por totpic »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Quiero la pata a 0V
« Respuesta #1 en: 29 de Septiembre de 2006, 16:24:24 »
Hola a todos, una vez mas por aqui, estoy haciendo un pequeño trasponder para una tonteria con el coche pero necesito que la pata de transmision este a nivel bajo  "0V" mientras no transmito nada.
El programa es un bucle ciclico que envia PEPE 5 veces y descansa (el descanso lo he puesto antes porque pensaba que iva a funcionar al reves mejor), en ese descanso es cuando necesito la pata de TX a 0V.
En lugar de un while reinicia porque es mejor para sincronizxacion de tramas.

Gracias a todos y os pego el codigo.

Código: [Seleccionar]
#include <16f628A.h>
#fuses HS,NOWDT,NOPROTECT,PUT
#use delay (clock=4000000)
#use rs232(baud=240, xmit=PIN_B2, rcv=PIN_B1)

#define led1 PIN_A1
#define led2 PIN_A0
#define bot1 PIN_A3
#define bot2 PIN_A2
#define TX PIN_B2
#define RX PIN_B1


///PROGRAMA
void main(void){

int i=0;

   disable_interrupts(GLOBAL);

   output_bit(led1,0);
   output_bit(TX,0);
   delay_ms(1000);
   output_bit(led1,1);
   while(i<5){
               printf("PEPE");
               i++;
               delay_ms(2);
    }
    reset_cpu();
}


Si usas la usart por hardware, la única forma de que se te ponga el pin en 0 durante un tiempo mayor a lo que tarda en transmitire un byte, es la de configurarlo como pin genérico (apagar la usart) y dejarlo en bajo.

Sino, como usa el protocolo NRZ (no retorno a cero) el estado de reposo es un 1, osea 5V o Vdd depende del caso.

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 totpic

  • PIC10
  • *
  • Mensajes: 7
Solucionado
« Respuesta #2 en: 29 de Septiembre de 2006, 21:01:02 »
Simplemente forzando a usart por hardware me ha funcionado, gracias por todo, la verda es que no se me ocurrio.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Solucionado
« Respuesta #3 en: 30 de Septiembre de 2006, 14:24:34 »
Simplemente forzando a usart por hardware me ha funcionado, gracias por todo, la verda es que no se me ocurrio.

¿Cómo? Que sería "forzar usart por hardware" ?
- 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)


 

anything