trato de hacer un programa que capture señal analogica con un pic y la envie a un pc mediante un max232,
y tengo un un problemilla (problemon)!
software:
Proteus
PCW ccs
Virtual Serial Port Driver
Visual basic 6
Me descargue un ejemplo que funciona, lo malo es que esta diseñado para un pic 16f84 en conjunto con un ADC,
y lo que necesito es hacerlo correr en un 16f876a.
Trato de hacerlo en ccs y utilizando el mismo vb cambiando algunos parametros como el Mscom, Baud rate, etc.
con el fin de adaptarlo a las necesidades...
Y creo que el problema radica en el codigo CCS del pic16f876a que no envia adecuadamente los datos ya que
¡EL VIRTUAL TERMINAL DE PROTEUS SOLO ARROJA SIMBOLOS EXTRAÑOS!, y el visual basic recive incongruencias o nada.
Podia alguien ayudarme?, estoy bastante presionado porque debo acabarlo para el martes y no me sale estoy atascado!
Agradeceria la ostia a quien me ayudase ya que necesito solucion o mi jefe no se jajaj acabamos de empezar las praktikas y no la quiero cagar jaja
1Aqui estan los codigos fuente
[URL="https://docs.google.com/file/d/0BzzRKo_lcYklZ1dHLWpSellnS3M/edit?usp=sharing"]https://docs.google.com/file/d/0BzzRKo_lcYklZ1dHLWpSellnS3M/edit?usp=sharing[/URL]
1En esta foto el esquema de lo que pretendo hacer,
2Aqui el resultado de las virtual terminal de ambos pics (puse el que va y el que no va en el mismo proteus para apreciar mejor)
3 aqui visual basic reciviendo el dato del pic16f84, el que va y no necesito :D
4Aqui el programa visual basic que uso
Código:
Dim Cadena As String Private Sub Conectar_Click() MSComm1.CommPort = 5 ' esto variaaa segun MSComm1.PortOpen = True MSComm1.Settings = "1200,N,8,1" MSComm1.InputLen = 0 MSComm1.RThreshold = 1 MSComm1.RTSEnable = True Siempre_Encima Form1, True Me.Caption = "Conectado" End Sub Private Sub Desconectar_Click() If MSComm1.PortOpen Then MSComm1.PortOpen = False Me.Caption = "Desconectado" End If End Sub Private Sub Form_Unload(Cancel As Integer) Desconectar_Click End Sub Private Sub MSComm1_OnComm() Dim i As Integer Dim Valor As String Valor = MSComm1.Input i = InStr(Valor, Chr(13)) If i = 0 Then Cadena = Cadena & Valor Else Cadena = Cadena & Left(Valor, i - 1) Rx.Text = Rx.Text & vbCrLf & Cadena Rx.SelStart = Len(Rx.Text) Cadena = "" End If End Sub
5Aqui el programa ccs
Código:
Podeis ayudarmee??? e intentado mil formas, he mancillado a google, y obligue a mirar a taringa y wikipedia y aun asi no he podido saciarme jajaja#include <16F876a.h> #device adc = 8 /// must be improved to 10 bites #fuses XT, NOWDT,NOPROTECT #use delay(clock=4000000) #use rs232(baud=1200,xmit=PIN_C6) //#use rs232(baud=1200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=2) /// framentos de mil pruebas //#use RS232(BAUD=1200,XMIT=PIN_C6,RCV=PIN_C7,PARITY=N,BITS=8,STREAM=STR_PC) int trace; void main () { setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(AN0) ; set_adc_channel(0); while(1){ set_tris_A(0x01); set_tris_B(0x00); set_tris_C(0x00); trace= read_adc(); putc(trace); // putc(PUTCHAR(65)); // mas pruebas delay_ms(500); } }
Un saludo gracias!