Hola amigos, tengo un problemilla, haber si me podeis ayudar...
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
https://docs.google.com/file/d/0BzzRKo_lcYklZ1dHLWpSellnS3M/edit?usp=sharing
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
4Aqui el programa visual basic que uso
5Aqui el programa ccs
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
Un saludo gracias!
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
https://docs.google.com/file/d/0BzzRKo_lcYklZ1dHLWpSellnS3M/edit?usp=sharing
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

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:
#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);
}
}
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
Un saludo gracias!
Última edición: