Autor |
Mensaje |
polimetro
Nivel 0
Registrado: 30 Mar 2013
Mensajes: 1
|
|
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
[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
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>
#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!
|
|
|
|
|
|
|
|
|
|
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|
|
[ Tiempo: 0.2342s ][ Pedidos: 20 (0.1878s) ] |