Autor Tema: Novato, necesito ayuda en iniciación a pic  (Leído 5389 veces)

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

Desconectado ellore

  • PIC10
  • *
  • Mensajes: 7
Novato, necesito ayuda en iniciación a pic
« en: 22 de Mayo de 2004, 11:56:00 »
Buenas a todos.

Tengo un problema que me dispongo a contarles a ver si me pueden ayudar.

Estoy haciendo el proyecto de fin de carrera de ingeniería informática que tengo que entregar en Julio. El proyecto es un programa para móviles que te permite ver pamas y localizarte en ellos, para la localización necesito utilizar un pic que manda unos comandos al teléfono.

Yo tengo poca idea de electrónica porque las asignaturas de la carrera las aprobé y olvidé como tantas otras cosas.

Me he comprado un programador t-20 y los elementos necesarios para correr lo que grabe en la pic, una 16f876.
He grabado este programa que se supone hace parpadear una pata:

#include "C:Documents and SettingsAdministradorMis documentosCódigo picprueba.h"


void main() {

   port_b_pullups(TRUE);
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_spi(FALSE);
   setup_counters(RTCC_INTERNAL,WDT_18MS);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   while(true){
      output_high(PIN_A0);
      delay_ms(1000);
      output_low(PIN_A0);
      delay_ms(1000);
   }
}
 y el include:
#include <16F876.h>
#device adc=8
#use delay(clock=40000000)
#fuses HS,WDT

lo he montado en el circuito de esta page
http://www.x-robotics.com/
 pero ni el tester ni un led me hacen ver que sale algo por esa pata.

Si por favor pudieran indicarme si el problema está en que el programa es erroneo o el circuito o donde puede estar el error les estaría muy agradecido.

Saludos y gracias

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #1 en: 22 de Mayo de 2004, 12:58:00 »
Hola.

Para empezar, quedaria mejor este post en la seccion de lenguaje C, mas que nada, para que toddo estuviera mas ordenado, además al pasar por allí, verías que hay muchos casos parecidos al tuyo que te servirían de ayuda.

Tu codigo funciona, solo hay que cambiar algunas cosillas. Funciona pero tambien hay cosas que sobran, por ejemplo el poner los pullups en el puerto b si no lo vas a utilizar, etc....

Tienes un error en la frecuencia del PIC, desde luego no conozco nigun pic que oscile a 40Mhz, como mucho seria uno de la serie 18 y con el pll que traen incrporado, pero aun así no se....

Bueno para no soltar tanto rollo t pego el codigo retocado vale?.

Codigo:

#include <16F876.h>
//#device adc=8
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP


void main()
{
     port_b_pullups(TRUE);
     setup_adc_ports(NO_ANALOGS);
     setup_adc(ADC_OFF);
     setup_spi(FALSE);
     setup_counters(RTCC_INTERNAL,WDT_18MS);
     setup_timer_1(T1_DISABLED);
     setup_timer_2(T2_DISABLED,0,1);


     while(true)
          {
                  output_high(PIN_A0);
                  delay_ms(1000);
                  output_low(PIN_A0);
                  delay_ms(1000);
          }
}



Te recomiendo leer el manual del compilador, por este foro esta traducido al español, que te hará más facil la vida con este compilador. Te lo digo mas que nada para conocer todas las funciones integradas que trae  que es uno de sus puntos fuertes.

Suerte con el proyecto y un saludo.

PD: No estaría mal que comentases o nos dieras info  sobre ese proyecto tan interesante que tienes entre manos, alguna gente del foro estaria muy interesada y lo agradeceriamos.

Desconectado ellore

  • PIC10
  • *
  • Mensajes: 7
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #2 en: 22 de Mayo de 2004, 13:51:00 »
Gracias por cambiarme el código, voy a probarlo a ver si funciona.

El es quema es correcto?

Te agradezco tu consejo pero no puedo perder tiempo en esta disciplina de momento, esta parde del proyecto tendría que estar acabada para el lunes por lo que no puedo entretenerme en aprender a utilizar el compilador.

Comprendo que no estés de acuerdo con esta forma de trabajar. Cuando acabe el proyecto me gustaría meterme más a fondo en esta materia pero ahora no es posible.

Respecto a la posición en el foro, si algún administrador decide moverlo estaré de acuerdo.

Gracias por la ayuda y ya te diré si ha funcionado

Saludos

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #3 en: 22 de Mayo de 2004, 14:38:00 »
No se que circuito es exactamente porque  en esa web salen bastantes y no me pusiste el enlace exacto, pero casi con toda seguridad te digo que esta bien porque ionitron es un experto en el tema (impresionante el control de 20 servos que se ha currao).

Saludos.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #4 en: 22 de Mayo de 2004, 23:02:00 »
Lo primero que hace falta para ayudar, creo que es saber detalladamente la filosofía del proyecto...
Si ella, no podemos hacernos una idea de las necesidades que tienes.
Y lo segundo, creo que por mucho que ayudemos, vas a tener que estudiar mucho en los dias que te quedan para acabar el proyecto, porque encender un led es facil, pero si el proyecto empieza a crecer todo son complicaciones!!!
y mas, que por lo que veo, vas usar comunicaciones!!!

Bueno, lo dicho, que si dejas una explicación muy muy muy detallada de lo que quieres desarrollar, a lo mejor entre todos, podemos orientarte cada uno en nuestro rango de conocimientos.

Desconectado ellore

  • PIC10
  • *
  • Mensajes: 7
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #5 en: 23 de Mayo de 2004, 10:13:00 »
No se si ha sido al cambiar el código o al volver a montar el circuito (que es en micropic el del 16f876) ya que cada vez que reprogramaba la pic lo volvía a montar por si acaso.

Sobre mi proyecto... Básicamente es un proyecto soft, es una aplicación java que lee mapas, lee una base de datos con los datos de las antenas, se comunica con un servlet... el problema es que java en la versión 1 para móviles tiene capado el puerto com, y lo necesito para poder mandar al teléfono unos comandos at y recibir datos de la antena. Por eso he programado un pic que es el que tiene que mandar esos comandos, recoger los datos que devuelve el teléfono y mandárselo al programa en java.
Me gustaría poder enchufar la pic directamente al teléfono, pero de momento lo que estoy haciendo es enchufarla a un rs232 y de ahí al cable del teléfono y al mismo. El problema es que no se si tengo que utilizar un max232 entre la pic y el rs232 o no. ¿Vosotros que creeis?

Muchas gracias por vuestra ayuda.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #6 en: 23 de Mayo de 2004, 19:01:00 »
Yo te recomiendo que uses el MAX... Pero mejor el 233 y asi te evitas los condensadores!!!

o el ds275


Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #7 en: 23 de Mayo de 2004, 19:05:00 »
Sobre el proyecto, creo que está muy bien... Pero vas un poco falto de tiempo, por que por experiencia, el tema de las comunicaciones, da muchos quebraderos de cabeza...
En que cuidad de españa te encientras???

Desconectado ellore

  • PIC10
  • *
  • Mensajes: 7
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #8 en: 24 de Mayo de 2004, 03:49:00 »
Soy de zaragoza

Ayer estuve todo el día intentando mandar un comando, pero el movil no recibe nada, el problema es que no se si el código está bien o no porque en algunos lugares he visto que tras el println mandan 0x0d. ¿Es eso correcto?

También lo intenté poniendo el max, pero al poner el condensador entre la pata 4y5 dejaba de funcionar el pic, supongo que será porque he montado algo mal, pero no lo encuentro.

Si por favor conocieseis algún enlace donde hubiese código para mandar comandos al teléfono tendría seguro que el código está bien y que los errores son en el montaje.

Muchas gracias por vuestra ayuda.

Ciao

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #9 en: 24 de Mayo de 2004, 09:27:00 »
he has conectado directamente con el hiperterminal para ver el correcto funcionamiento de la conexxión???
Si no es así, ya te explico que es lo que yo haría para testear el funcionamiento.



Desconectado ellore

  • PIC10
  • *
  • Mensajes: 7
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #10 en: 24 de Mayo de 2004, 12:55:00 »
Ya funciona el max, pero sigo sin saber si lo tengo que poner o no.

El movil no responde ni con max ni sin max, os pego el código a ver si por lo menos está bien

#include <16F876.h>
//#device adc=8
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_C6,Rcv=PIN_C7)
#fuses XT,NOWDT,NOPROTECT,NOLVP


void main()
{
     port_b_pullups(TRUE);
     setup_adc_ports(NO_ANALOGS);
     setup_adc(ADC_OFF);
     setup_spi(FALSE);
     setup_counters(RTCC_INTERNAL,WDT_18MS);
     setup_timer_1(T1_DISABLED);
     setup_timer_2(T2_DISABLED,0,1);

     SET_TRIS_C(0b10000000);//rc7 como entrada de datos del puerto serie

     while(true)
          {
                  output_high(PIN_A0);
                  delay_ms(1000);
                  output_low(PIN_A0);
                  delay_ms(1000);
                  printf("AT+CMEC=2";
                  delay_ms(1000);
                  printf("AT+CKPD=1234";
                  output_high(PIN_A0);
                  printf("AT+CKPD="1234"
";
                  output_low(PIN_A0);

          }
}

mando el ckpd de dos maneras porque he leido que aveces dan problemas si requieren un int y mandas un string pero ni con esas.

He intenado testear con el pc pero no tengo un cable hembra hembra así que mañana compraré un conector macho para probarlo.

A ver si el código por lo menos está bien y no he hecho el capullo.

Saludos y muchas gracias

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #11 en: 24 de Mayo de 2004, 22:32:00 »
A ver, que nos tenemos que poner de acuerdo....

Te comento lo que yo haría, y lo que he hecho hasta ahora....
Se llama divide y vencerás....
Intenta comunicarte con las partes por separado... O sea el PIC y el TFL

Creo que primero tienes que conseguir conectar el telefono con cualquier software de simulación de terminal....
Una vez que el hiperterminal, consiga hablar con el telefono, a base de comandos AT, ya vamos aclarando las cosas....
Espero que con el conector y el cable te funcione!!!

luego, programa el pic, para que envie datos serie...
Un programa sencillito, por ejemplo el típico que manda la cadena "hello world"....
le pones a tu circuito un maravilloso max232/233, y también lo comunicas con el hiperterminal, y en cuanto el pic hable, ya tienes las dos partes funcionando por separado...

ya solo te queda buscar la compatibilidad del hardware....


No tengas prisa por revisar el código, si ni tan siquiera, sabemos si el teléfono comunica con un pc...

En teoría, el teléfono trabaja con salida ttl, y el pic también.. por lo que creo que no debería hacer falta el MAX ( En esto no me hagas demasiado caso).

Espero que tengas suerte en tus proximas pruebas....

Un saludo
pd: no puedo revisar el código, porque programo en pbp, y aún entendiendo el c, no creo que sepa localizar un error...

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #12 en: 24 de Mayo de 2004, 22:39:00 »
Me hago una idea de que dejas el programa en un buble cerrado, haciendo parpadear un led cada 2000ms y después envías tres comandos AT...
Mi problema, es que no tengo ni idea, de como manda ccs los datos al serial....

en pbp, sería
serout2, pin, baud,["AT+......"]
atacando al pin, con un baudrate determinado, y una configuración del puerto definida....
por ejemplo si baud = 188 sería comunicación a 4800 8N1 no Flow

Desconectado ellore

  • PIC10
  • *
  • Mensajes: 7
RE: Novato, necesito ayuda en iniciación a pic
« Respuesta #13 en: 25 de Mayo de 2004, 11:05:00 »
He conectado mi circuito al pc, y no recibe nada, he puesto un sniffer al puerto com y no monitoriza nada en sentido pic-pc.

Si por favor alguien me pudiera mandar un hex para 16f876 con un código que mande un hola mundo al pc le estaría muy agradecido, ya que mepermitiría centrarme sólo en el esquema.

Ah, mi correo: sirfrancisdrake@terra.es

Saludos y gracias