Autor Tema: Para NOTA->Uart y compañia  (Leído 2960 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado letxu2

  • PIC10
  • *
  • Mensajes: 10
Para NOTA->Uart y compañia
« en: 09 de Mayo de 2006, 15:24:24 »
Bueno, estas son preguntas para nota:
  Estamos haciendo un programa en en C para el dsPIC 13F6014, estamos con la uart y queremos mandar un mensaje a un modem GSM, hasta aki todo bien, ahi van las preguntas:

      1º Hemos conseguido que nos salgan caracteres por la uart, pero unicamente 3, y necesitamos enviar una frase entera.
      2º Para que el modem reconozca que el mensaje que deseas enviar ya has acabado de escribirlo, hay que mandar un retorno de carro, hemos utilizado funciones de concatenar pero nada, que no reconoce el retorno de carro. (ni como 26, ni como CR). Si podeis ponernos un ejemplo de como se hace.......
       Por favor, corre mucha prisa, si sabeis la segunda respuesta podeis salvarnos....... Muchas gracias!!!!!

Desconectado JavisusII

  • PIC12
  • **
  • Mensajes: 79
Re: Para NOTA->Uart y compañia
« Respuesta #1 en: 09 de Mayo de 2006, 16:57:36 »
Buenas ,

-Respecto al primer párrafo sería bueno que miraráis los errores,
             USTA#OERR
también USTA,#PERR
             USTA,#FERR
-Respecto al segundo pienso que el retorno de carro es el caracter 0x13









Xavi (Barcelona)

Desconectado letxu2

  • PIC10
  • *
  • Mensajes: 10
Re: Para NOTA->Uart y compañia
« Respuesta #2 en: 09 de Mayo de 2006, 17:58:05 »
No se como mirar los errores en donde me has dicho. Estor utilizando el MPLAB, y no encuntreo ese registro. la cuestion es que lo simulo y me funciona, pero luego a la hora d ela verdad solo me salen y tres letras escritas.

Por otro lado, he utilizado el 0x13 como caracter, de echo es esto lo que he puesto:

      strcpy(frase,"G");
      strncat(frase,'0x13',3);
      strncat(frase,"\0",6);

Y sigue sin cogerme el valor, no me hace el retorno de carro, le veis algun fallo al codigo??Gracias

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Para NOTA->Uart y compañia
« Respuesta #3 en: 09 de Mayo de 2006, 23:23:49 »
strncat no llevará como tercer parámetro el número de caracteres a concatenar?. para este caso serian 1 y no 3 y 6. Tambien puedes probar a enviar el caracter 10 que es el salto de línea. Una forma de incluir estos caracteres es utilizar '\r' => 0x13 y '\n' => 0x10.

Un saludo y suerte con el proyecto.
* 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 letxu2

  • PIC10
  • *
  • Mensajes: 10
Re: Para NOTA->Uart y compañia
« Respuesta #4 en: 10 de Mayo de 2006, 12:09:03 »
Muchas gracias, no sabia muy bien a lo que se referia el ultimo paramentro de strncat. Sobre lo de el retorno de carro, lo de el terorno de carro  lo que tengo q poner es un ctrl z que no se como ponerlo, es \n ?? porque \n en java si que es que cambie de linea. La cuestion es que le kiero enviar un sms a un modem GSM y he estao investigando y me pone que, para avisar al modem del fin de mensaje tengo que pone ctrl z que creo que coincide con el numero 26 en ascii, la cuestion es que nunca me lo llega ha coger como crtl z siempre me lo coge como uun caracter, o simplemenete no lo coge, y no tengo ni idea de que hacer para solucionarlo.

A alguin se le ocurre q puede pasar con la uart para que unicamente me escriba tres caracteres??algun problema de buffer......es lo unico q se me ocurre y no se como solucionarlo.

Gracias

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Para NOTA->Uart y compañia
« Respuesta #5 en: 10 de Mayo de 2006, 12:28:27 »
Para que te pueda leer el retorno de carro puedes cargar el valor 0x0A en hexadecimal(h'A'), o en binario (b'1010') al registro correspondiente para que el modem lo interprete como un salto de línea \n.

Saludos y suerte :mrgreen:
¡¡¡Viva México cabrones!!!

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Para NOTA->Uart y compañia
« Respuesta #6 en: 10 de Mayo de 2006, 13:57:28 »
Efectivamente el Ctrl+z es el caracter ascii 26, tambien es el mismo que el final de fichero EOF.

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 JavisusII

  • PIC12
  • **
  • Mensajes: 79
Re: Para NOTA->Uart y compañia
« Respuesta #7 en: 11 de Mayo de 2006, 08:21:32 »
El problema de transmisión es que llenas el buffer de salida que creo es de 4 caracteres
debes hacer lo siguiente:
enviar
mov w1,U1TXREG (ejemplo)

y antes de volver a enviar asegurate que el buffer esta vacio o que el dato se ha enviado
del registro U1STA mira o el bit   #UTXBF
                                    o el bit  #TRMT

De todas maneras debes leerte con pelos y señales los datasheet.
Xavi (Barcelona)

Desconectado letxu2

  • PIC10
  • *
  • Mensajes: 10
Re: Para NOTA->Uart y compañia
« Respuesta #8 en: 11 de Mayo de 2006, 10:58:37 »
El problema es que estoy programando en C, para mandar los datos a través de la UART he utilizado una liberia de microchip, he mirado e internamente pone lo de coprobar cuando se llena el buffer y tiene que esperar a que se vacie, por eso es mucho mas raro, efectivamente el buffer es de 4 caracteres, pero a mi no me llega a enviar el 4º, se queda atascado en el 3º. Es rarisimo, he escrito a los de microchip y me han dicho que estan buscando el fallo, porque ni si kiera su ejemplo me funciona. Sera una leyenda que funciona ese codigo???jeje. Muchas gracias