Autor Tema: dudas con conversion ascci decimal  (Leído 3151 veces)

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

Desconectado capito

  • PIC10
  • *
  • Mensajes: 5
dudas con conversion ascci decimal
« en: 13 de Septiembre de 2009, 22:30:29 »
HOLA AMIGOS   TENGO UNA DUDA O MAS BIEM UNA PREGUNTA

TENGO LO SIGUIENTE  :
PIC CONECTADO A PC  POR MEDIO DE UN MAX 232
PERO AL ENVIAR DATOS  DESDE EL PIC EN EL PC ME APARECEN PURAS COSAS  RARAS ,MENOS LOS DATOS DE TEMPERATURA  K KIERO RECIVIR
QUE ES LO K PASA CREO K TIENE K VER ALGO CON EL   CODIGO ASCII

ECHENME UNA MANITO PLIS
LA IDEA ES ENVIAR  UN 20  DESDE EL PIC   Y K EL PC TAMBIEN ME LLEGE UN 20
E TRATADO DE TODO PERO NO CACHO NA
ESO GRACIAS  ESPERO SU AYUDAS AMIGOS  THANKSS

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: dudas con conversion ascci decimal
« Respuesta #1 en: 14 de Septiembre de 2009, 00:08:42 »
No escribas todo en mayúscula, es molesto. Con respecto a tu problema, si desde el PIC envías la data en decimal, en la aplicación de la PC debes tomar ese byte y convertirlo a ascii para poder visualizarlo. Y sino directamente desde el PIC envía convertido en string tus datos.


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

Desconectado capito

  • PIC10
  • *
  • Mensajes: 5
Re: dudas con conversion ascci decimal
« Respuesta #2 en: 14 de Septiembre de 2009, 01:41:12 »
Gracias por contestar tendre presente LO DE MAYUSCULAS 
esto es lo que tengo en pbp  envio el dato en decimal y en vbasic solo veo puras cosas raras me imagino k codigo ascii

INCLUDE"modedefs.bas"
DEFINE ADC_BITS 8 ; NÚMERO DE BITS
DEFINE ADC_CLOCK 3 ; USAR CLOCK INTERNO DEL AD
DEFINE ADC_SAMPLEUS 50 ; TIEMPO DE MUESTREO EN 50US



ch0 VAR WORD
an0 var byte
DATOS VAR BYTE
TRISA = %11111111   ;todo el puerto A como entrada
TRISB =%10000000
PULSA VAR PORTB.0
PAUSE 500
ADCON0 = %11000001 ;
ADCON1 = %00001110 ;  CANAL COMO ANALÓGICO

CONVERTIR:
   ADCIN 0, ch0
   an0 = 2 * ch0
   serout portb.1,n9600,[#AN0] ; envio de dato en forma seriall
   Pause 2000
   GOTO CONVERTIR
 END



y esto  en visual basic
 esta biem basico


Dim textout, textin As String

Private Sub conex_Click() ; para conectarme al com1  "ya esta seteado por defecto a 9600bd"
puerto.CommPort = 1
puerto.PortOpen = True
End Sub

Private Sub Command1_Click() ; para mostrar los datos en un label
textin = puerto.Input
MOSTRAR.Caption = textin
End Sub

estes es el codigo solo reccivo cosas raras

eso es amigos si me pueden dar lus a esto k me tiene lokooooo hace ya un ratoooo

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: dudas con conversion ascci decimal
« Respuesta #3 en: 14 de Septiembre de 2009, 21:31:47 »
capito deberias usar el mscomm por eventos:

ej:
Código: Visual Basic
  1. ...
  2.     MSComm1.InBufferSize = 'aqui va el ancho en bytes del dato que recibes del pic
  3.    MSComm1.RThreshold = 'aqui va el ancho en bytes del dato que recibes del pic
  4.    MSComm1.InputLen = 'aqui va el ancho en bytes del dato que recibes del pic
  5.  
  6. Private Sub MSComm1_OnComm()
  7.   If comEvReceive Then
  8.    StringDatoRecibido = MSComm1.Input
  9.    ' aqui procesas el dato capturado del buffer serial
  10.   End If
  11. end sub
  12. ...

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

Desconectado capito

  • PIC10
  • *
  • Mensajes: 5
Re: dudas con conversion ascci decimal
« Respuesta #4 en: 15 de Septiembre de 2009, 21:37:22 »
thanks  por contesta    revice  tu  code  y si funka ok

ya resolvi  el problem era el seteo del compin en proteus


ahora si recivo ok en v basic ,pero mi idea es que al enviar el dato de un CAD
 se me refleje   en una variable o un label o texbox  pero que no se me repita tantas veces
solo que vaya cambiando el valor     "otro lio mas "" jajaja
aka dejo el code  k estoy usando en v basic


Option Explicit

Dim InBuff As String

Private Sub cmdDatos_Click()

End Sub

Private Sub cmdTransmite_Click()
Dim TextoSalida As String

TextoSalida = txtTransmitir.Text
MSComm1.Output = TextoSalida 'Se transmite todo lo que hay en el textbox

End Sub

Private Sub Form_Activate()

Dim buferentrada    As String
MSComm1.CommPort = 1        'puerto com1
MSComm1.PortOpen = True     'se abre el puerto para que funcione
MSComm1.Output = txtTransmitir.Text ' se transmite lo que hay en el textbox


End Sub

Private Sub MSComm1_OnComm()
         Select Case MSComm1.CommEvent
         ' Errores
            Case comEventBreak   ' A Break was received.
            Case comEventCDTO    ' CD (RLSD) Timeout.
            Case comEventCTSTO   ' CTS Timeout.
            Case comEventDSRTO   ' DSR Timeout.
            Case comEventFrame   ' Framing Error.
            Case comEventOverrun ' Data Lost.
            Case comEventRxOver  ' Receive buffer overflow.
            Case comEventRxParity   ' Parity Error.
            Case comEventTxFull  ' Transmit buffer full.
            Case comEventDCB     ' Unexpected error retrieving DCB]

         ' Eventos
            Case comEvCD   ' Change in the CD line.
            Case comEvCTS  ' Change in the CTS line.
            Case comEvDSR  ' Change in the DSR line.
            Case comEvRing ' Change in the Ring Indicator.
            Case comEvReceive ' Received RThreshold # of chars.
                InBuff = MSComm1.Input
                txtRecibir.Text = txtRecibir.Text & InBuff
            Case comEvSend ' There are SThreshold number of
                           ' characters in the transmit buffer.
            Case comEvEOF  ' An EOF character was found in the
                           ' input stream.
         End Select

      End Sub

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: dudas con conversion ascci decimal
« Respuesta #5 en: 16 de Septiembre de 2009, 12:36:44 »
...pero mi idea es que al enviar el dato de un CAD
 se me refleje   en una variable o un label o texbox  pero que no se me repita tantas veces
solo que vaya cambiando el valor...


si es que entiendo tu planteamiento, entonces es así:

Código: Visual Basic
  1. ...
  2. InBuff = MSComm1.Input
  3. txtRecibir.Text =  InBuff
  4. ...



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


 

anything