TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: capito en 13 de Septiembre de 2009, 22:30:29

Título: dudas con conversion ascci decimal
Publicado por: capito 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
Título: Re: dudas con conversion ascci decimal
Publicado por: Suky 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!
Título: Re: dudas con conversion ascci decimal
Publicado por: capito 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
Título: Re: dudas con conversion ascci decimal
Publicado por: PalitroqueZ 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. ...

Título: Re: dudas con conversion ascci decimal
Publicado por: capito 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
Título: Re: dudas con conversion ascci decimal
Publicado por: PalitroqueZ 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. ...