TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: monge_22 en 13 de Marzo de 2006, 12:45:00

Título: Estudiante en apuros
Publicado por: monge_22 en 13 de Marzo de 2006, 12:45:00
Hola buenas, tengo que controlar un motor paso a paso mediante un control remoto y un ordenador (con rs232) todo esto con un pic.
Estoy empezando ahora y no tengo muy claro si programar el pic con lenguaje C++ o ensamblador, que me aconsejais?, si teneis algun ejemplo de programa para ver como como puedo hacer lo del control remoto y la comunicacion serie, el ejemplo no tiene que ser para control un motor paso a paso.
MUCHAS GRACIAS!!!!!!!!!!!!!!!!
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 14 de Marzo de 2006, 05:22:00
Hola, lo primero gracias por interesarte.
Esto es un proyecto de fina de carrera y lo estoy haciendo en el extrangero y no me han dado muchas opciones a elegir.
He programado el motorola HC11 y en c++ tambien he programado para algunas asignaturas, pero aqui solo me dejan programar el pic.
El proyecto consta como de dos partes, una de ellas es el control remoto. Este consta de tres botones, haran girar al motor en el sentido derecha, izquierda tantos pasos como tiempo lo tengamos pulsado el boton y ademas tiene star/stop. Demomento no he elegido ningun mando, pero en esta semana tendre que elegirlo dado que necesito saber su frecuencia.
Yo no quiero que me manden un programa echo,ni mi proyecto terminado, solo me gustaria tener algun programa de guia en el que se controle algo con un mando, o simplemente una ayuda para encaminar mi proyecto en el punto en el que me encuentro.
La otra parte (comunicacion con el pc mediante RS232) la tengo un poco parada, dado que no puedo hacer las dos cosas a la vez.
Igual es mejor empezar con esa parte, no lo se.
Bueno, muchas gracias por dedicarme estos minutos.
Título: RE: Estudiante en apuros
Publicado por: maunix en 14 de Marzo de 2006, 05:37:00
Si has programado con otros microcontroladores sabrás que programar en C no te evita tener que leer el datasheet del micro para saber que estas haciendo.

Sugerencia? Y, depende de cada uno .  Tampoco has dicho que pic específico vas a usar.  Si usas los 16F te será más facil programar en C porque te evitarás el tedioso trabajo de saber en que página de memoria y de programa está tu código.  La gran mayoria de los errores cuando se empieza con los pics corresponde a esto.

Respecto a la interfaz con la pc, un max232 es suficiente.  Luego está tu inventiva y creatividad para crear el protocolo que creas más adecuado.

1) Has un programa que prenda un led, de esa forma sabrás que al menos el pic vive
2) has un programa que envie y reciba datos por la usart (atención al clock que usas en tu micro y a como configuras la usart para obtener la misma velocidad que la pc).
Ese programa, sería un "eco".  La PC envía un dato y el pic le responde el mismo dato.
3) Implementa luego tu protocolo de "comandos".

Con la parte wireless del control remoto no te puedo ayudar porque no he hecho nada similar pero hay integrados de holtek que son infrarrojos pero si por RF y resuelven todo esto muy bien para cortas distancias.  Los he visto en muchas aplicaciones, sin ir mas lejos en control de portones eléctricos.
En la sección del C, podrás encontrar ejemplos sobre el uso de la usart.

Saludos y bienvenido a los pics
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 14 de Marzo de 2006, 06:13:00
Gracias maunix.
Tenia pensado empezar con el mando, pero con esto que me has dicho, voy a empezar con el ordenador.
Voy a utilizar el pic 16FXXX, todabia no se cual va a ser el especifico, yo creo que cualquiera me valdria, no?, solo utilizo un puerto entero para la salida (control del motor) y otro puerto (1 pin entrada serie, 1pin salida serie, 1 pin para el mando.).

Para programar el puerto serie en c++ tengo el siguiente prototipo el cual se hace eco, que te parece?

#define _16fxxx
#include "pic16fxxx.h"
#include "sci.h"


void main(void)
{
  unigned char c;
  TRISB = 0xFF; //configuro el puerto B como entrada
   sci_conf();
   for(;Giño
    c = sci_read(); //llega el dato del pc
................
...............

sci_write(c);//envia de vuelta el caracter
}

este es como lo principal para la comunicacion le tendria que meter muchisimas cosas, pero para empezar, crees que voy bien encaminado????
Título: RE: Estudiante en apuros
Publicado por: Azicuetano en 14 de Marzo de 2006, 06:27:00
Hola monge_22!

En primer lugar deja el control remoto aparte. Implementalo todo comunicandote por rs232 desde el PC con el PIC y cuando todo te funcione correctamente... entonces te puedes meter con el control remoto (si no te divides el proytecto te vas a volver loco).

Con esto tendrás para divertirte un rato:

http://miarroba.com/foros/ver.php?foroid=46840&temaid=4679539


Un saludo desde Alicante.
Título: RE: Estudiante en apuros
Publicado por: maunix en 14 de Marzo de 2006, 08:03:00
Escrito originalmente por monge_22
Gracias maunix.
Tenia pensado empezar con el mando, pero con esto que me has dicho, voy a empezar con el ordenador.
Voy a utilizar el pic 16FXXX, todabia no se cual va a ser el especifico, yo creo que cualquiera me valdria, no?, solo utilizo un puerto entero para la salida (control del motor) y otro puerto (1 pin entrada serie, 1pin salida serie, 1 pin para el mando.).



En principio los pics entre sí son "similares", no idénticos.  Tienen diferencias.

Escrito originalmente por monge_22

Para programar el puerto serie en c++ tengo el siguiente prototipo el cual se hace eco, que te parece?

Codigo:

#define _16fxxx
#include "pic16fxxx.h"
#include "sci.h"


void main(void)
{
  unigned char c;
  TRISB = 0xFF; //configuro el puerto B como entrada
   sci_conf();
   for( ; ; )
    c = sci_read(); //llega el dato del pc
................
...............

sci_write(c);//envia de vuelta el caracter
}



este es como lo principal para la comunicacion le tendria que meter muchisimas cosas, pero para empezar, crees que voy bien encaminado????



Para los pics no conozco ningún compilador en C++, pensé que te referías a la parte de la PC.  Para microcontroladores no es frecuente y hasta innecesaria la programación orientada a objetos por eso se usa el C (o algunos engendros que suelen llamar C pero que del ANSI C distan bastante).
El puerto B supongo que es porque lo usarás como entrada y estamos hablando de un PIC16F628 o similar.  Otros pics tienen el puerto serie ubicado en el puerto C.  En este sentido te puedes dar cuenta que si bien los pics son similares, no son idénticos.

No conozco justo el compirador del que posteas el código, pero por lo que alcanzo a interpretar lees y envias y eso es lo que hace un software ECO así que si tu hardware con max232 está bien armado no tendrás problemas.

Saludos
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 14 de Marzo de 2006, 11:43:00
Gracias por la aclaracion y por la pagina donde viene la conexion del pic con el pc. Voy a usar el pic16F628. con hardware max232.
La siguiente duda que se me plantea es si hacer primero el programa del pic, o hacer en visual basic el interface grafico para controlar el motor, dado que si hago el pic primero no se como le llegan los datos (por ejemplo si le pulso el boton de izquierda) no se como le llega ese dato al pic.
 
Título: RE: Estudiante en apuros
Publicado por: maunix en 14 de Marzo de 2006, 17:06:00
Escrito originalmente por monge_22
Gracias por la aclaracion y por la pagina donde viene la conexion del pic con el pc. Voy a usar el pic16F628. con hardware max232.
La siguiente duda que se me plantea es si hacer primero el programa del pic, o hacer en visual basic el interface grafico para controlar el motor, dado que si hago el pic primero no se como le llegan los datos (por ejemplo si le pulso el boton de izquierda) no se como le llega ese dato al pic.
 


Antes que hacer toda la interfaz bonita y todo ese tema, te aconsejo resolver la comunicación del PIC.  Una vez logrado esto,  el resto sería más simple y al menos mas predecible en tiempo ya que si eres novato en PIC tal vez te pueda llevar mucho tiempo el software lidiando con  cosas simples.  Pero si tienes mas exp en VBasic eso te permitirá que si lo dejas para lo ultimo podras avanzar rapido ya sabiendo que el pic anda bien.

Saludos
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 20 de Marzo de 2006, 02:50:00
hola a todos otra vez y gracias por los ultimos consejos.
He estado estos dias programando el pic y he conseguido sacar el siguiente programa. Lo he depurado y le he quitado los errores, lo que pasa que todabia no me han mandado el pic y no se si hace exactamente lo que quiero.

#define(_PCB_)
#include <16F628.h>
#fuses NOLVP, NOWDT, HS, NOPROTECT
#use delay(clock = 20000000)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)
#include<input.c>
#include<stdlib.h>
#include<stdio.h>
#BYTE port_a = 6
#BYTE port_b = 6

drive_stepper(char dir, int steps)
{
int i;
double position;
for(i = 0; i<steps; i++)
   {
   set_tris_a(0x0F);
   
   //configuracion del puerto a para que saque la secuencia del motor//
   
   if(position == 10100000)
      {
      if(dir = "R")
         port_a = 10010000;
      else
         port_a = 01100000;
      }  
         
   else if(position == 01100000)
      {
      if(dir = "R")
         port_a = 10100000;
      else
         port_a = 01010000;
      }
   else if(position == 10010000)
      {
      if(dir = "R")
         port_a = 01010000;
      else
         port_a = 10100000;
      }
   else
         {
      if(dir = "R")
         port_a = 01100000;
      else
         port_a = 10010000;
         }
      }          
   position = port_a;
}



main()
{
char dir;
int steps, i;
double position ;
set_tris_b(0x04);//PUERTO B LISTO PARA TRANSMISION/
while (True)
   {
   printf("
Direcction (F, R):"Giño;
   dir = getc();
   putc(dir);
   printf("
Steps :"Giño;
   steps = gethex();
   drive_stepper(dir,steps);  //function
   }
}


Si alguno alguno encuentra algun error en el codigo os pediria que me lo dijerais, que ahora estoy parado esperando a que me manden el pic y la verdad no dispongo de mucho tiempo.
Muchas gracias anticipadas.

Título: RE: Estudiante en apuros
Publicado por: maunix en 20 de Marzo de 2006, 05:30:00
Al parecer está ok y no debieras tener problema.
Ahora bien, qué tipo de datos es double en el compilador que usas?
Lo usaste para position y es una variable de 1 byte dentro de la función drive_stepper




Título: RE: Estudiante en apuros
Publicado por: RaDoN en 20 de Marzo de 2006, 06:36:00
Para el control de motores paso a paso, tanto unipolares como bipolares, esta web te puede ser de ayuda:

http://www.x-robotics.com/motorizacion.htm#MOTORES%20PaP

Suerte!
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 20 de Marzo de 2006, 10:07:00
Gracias por miraros el programa.
Lo que intento hacer en position es meter en los 4 bits altos del puerto b para controlar el motor y los 4 bits bajos los dejo a cero ya que no los uso. Lo he puesto double por que no sabia si un int me iva a valer, pero pensandolo bien yo creo que si que me vale.
Una duda que me surge es el reloj interno que lleva el pic, el pic que tengo lleva reloj y lo declaro #use delay(clock = 20000000) con esto solo me vale no?, ya no deberia usar crystal.
Un Saludo!!!
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 20 de Marzo de 2006, 10:07:00
Gracias por miraros el programa.
Lo que intento hacer en position es meter en los 4 bits altos del puerto b para controlar el motor y los 4 bits bajos los dejo a cero ya que no los uso. Lo he puesto double por que no sabia si un int me iva a valer, pero pensandolo bien yo creo que si que me vale.
Una duda que me surge es el reloj interno que lleva el pic, el pic que tengo lleva reloj y lo declaro #use delay(clock = 20000000) con esto solo me vale no?, ya no deberia usar crystal.
Un Saludo!!!
Título: RE: Estudiante en apuros
Publicado por: adan877 en 20 de Marzo de 2006, 13:22:00
Lo q has debido hacer desde un principio es controlar el motor paso a paso ya q es la esencia de tu proyecto. Utiliza un driver L293 ya q estos steppers consumen bastante corriente. Estos motores se controlan mendiante un codigo q depende del numero de bobinas(cables) que tenga el motor. La idea es ir activando una bobina a la vez hasta completar un paso (de ahi el nombre). LA comunicacion serial  la puedes hacer con un 16f876 o 16f877 que ya traen la rutina hecha,lo unico q debes hacer es activar unos bits de unos registros inetrnos del puerto USART del micro. Para lo del control remoto utiliza unos diodos infrarrojos (emisor y receptor) que es lo mas sencillo de montar, solo requieren una polarizacion y ya, luego t mando los circuitos. De verdad con un poco de dedicacion es sencillo el proyecto.
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 21 de Marzo de 2006, 04:44:00
Hola
Si el funcionamiento de los motores, es lo primero que me estudie antes de empezar el proyecto, el driver que iva a usar es el ULN2803. Lo que es la comunicacion del pic con el motor mas o menos la tengo controlada, la secuencia que tengo es para el motor que voy a usar.
El problema me surge con la comunicacion serie y el control remoto. Tenia pensado usar el pic 16F628, que tiene dos pines (el 7 y 8) RX y TX (usart asynchronous receive y usart asynchronous transmit) que supongo que sera lo mismo que lo que tu me quieres decir con los dos pic que me decias no?
Te estaria muy agradecido si me mandaras los circuitos, ya que lo del control remoto si que estoy muy perdido y ya tendria por donde empezar.
No me cansare de daros las gracias, por cada mensaje que me mandeis, cada uno me ayuda a solucionar o mejorar parte de  mi proyecto.
Un saludo  
Título: RE: Estudiante en apuros
Publicado por: adan877 en 21 de Marzo de 2006, 06:06:00
Hola, ahi t mando un link dond encuentras info de los infrarrojos, emisor y receptor.
Si, lo del puerto USART te t sirve, TX y Rx pero recuerda q necesitas una tierra q debe ser la misma de todo el circuito. Puedes probar con el Hyper Terminal de Windows para ver si mandas datos efectivamente al puerto serial del pc, dependiendo del cristal q tengas t recomiendo una transmision de 9600 baudios, eso lo configuras en el USART del micro.
http://jdlope.tripod.com/infra.html
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 21 de Marzo de 2006, 14:10:00
Hola adam, te queria preguntar por el control remoto.
Mira ahora estoy con la comunicacion serie, pero en donde estoy tardan un tiempecillo en traerte los componentes, asique deberia de pedir el mando y el receptor para cuando me ponga con la parte del control remoto. He encontrado este emisor,yo creo que si me valdra, pero no estoy muy seguro.

http://es.farnell.com/jsp/endecaSearch/partDetail.jsp?SKU=139877&N=0

de los 4 botones usaria el de arriba para el start y el de la izquierda para decirle los grados que quiero que gire y el de la derecha igual.
que te parece?, si cojo este emisor, me valdria cualquier receptor ir, o deberia coger uno especifico.
Gracias
Un saludo
 
Título: RE: Estudiante en apuros
Publicado por: maunix en 21 de Marzo de 2006, 15:01:00
Escrito originalmente por monge_22
Gracias por miraros el programa.
Lo que intento hacer en position es meter en los 4 bits altos del puerto b para controlar el motor y los 4 bits bajos los dejo a cero ya que no los uso. Lo he puesto double por que no sabia si un int me iva a valer, pero pensandolo bien yo creo que si que me vale.
Una duda que me surge es el reloj interno que lleva el pic, el pic que tengo lleva reloj y lo declaro #use delay(clock = 20000000) con esto solo me vale no?, ya no deberia usar crystal.
Un Saludo!!!


monge_22 me puedes aclarar que has querido decir con esta frase de que si usas esa directiva de delay especificando el clock ya no debieras usar cristal ???

Título: RE: Estudiante en apuros
Publicado por: Azicuetano en 22 de Marzo de 2006, 05:18:00
Hola monge_22!

Si que tendrás que uilizar cristal con sus correspondientes condensadores.

Si el cristal es de 20 Mhz pondrás:

#use delay(clock = 20000000)

Si es de 4 Mhz:

#use delay(clock = 4000000)


Por otro lado... has decidido ya que la comunicación inalámbrica la vas a hacer por infrarojos??


Un saludo desde Alicante
Título: RE: Estudiante en apuros
Publicado por: maunix en 22 de Marzo de 2006, 05:54:00
Escrito originalmente por monge_22
Si claro, te comento.
El pic que uso tiene un reloj interno y a lo que me queria referir es si declarando el
#use delay(clock = 20000000) cuando haga el hardware tengo que meter un oscilador? (esto lo haria con un crystal y dos condensadores), ami me parece que no deberia hacer nada de eso pero en algun ejemplo que me he mirado si que lo hacen, por eso tengo la duda.
Espero que esta explicacion te ayude a comprender mi duda, gracias por preguntar y todo lo que no entiendas no dudes en decirmelo.
Un saludo


Como regla general SIEMPRE necesitas cristal.  Algo tiene que indicarle los pasos al PIC.

Esa directiva que tu lees es para indicarle al compilador que clock usas así puede "calcular" cuantas instrucciones debe ejecutar para hacer un delay especificado.

Por ejemplo, si haces delay_ms(1)

Si le indicas al compilador que usarás un clock de 4Mhz (1 useg por instrucción) entonces se generará un código de retardo de 1000 instrucciones.

Si le indicas al compilador que usarás un clock de 20Mhz (0,2 useg por instrucción) entonces se generará un código de retardo de 5000 instrucciones.

El compilador no tiene otra forma de saber cual será la frecuencia final en el tiempo de compilación si es que no le indicas Giño

Saludos
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 22 de Marzo de 2006, 05:55:00
Gracias, voy a usar un crystal de 4 mhz.
La comunicacion si que la voy a hacer por infrarojos, todabia no tengo muy claro como va a funcionar por que estoy liadillo con la comunicacion serie, pero en unos dia me tocara ponerme con ello.
Por fin el proyecto parece que va cogiendo buen camino gracias a vosotros.

Un saludo para todos!  
Título: RE: Estudiante en apuros
Publicado por: maunix en 22 de Marzo de 2006, 08:59:00
Escrito originalmente por monge_22
Gracias, voy a usar un crystal de 4 mhz.
La comunicacion si que la voy a hacer por infrarojos, todabia no tengo muy claro como va a funcionar por que estoy liadillo con la comunicacion serie, pero en unos dia me tocara ponerme con ello.
Por fin el proyecto parece que va cogiendo buen camino gracias a vosotros.

Un saludo para todos!  


Nosotros te podemos haber dado una mano pero el mérito del esfuerzo es tuyo.  

Saludos
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 23 de Marzo de 2006, 10:38:00
Hola de nuevo!
Por fin tengo mi programa dentro del pic, lo he modificado un poco porque he visto que no me iva a funcionar como deseaba y ademas en la depuracion tambien me daba fallos, pero esa etapa ya la he pasado, ahora tengo que comunicar pic con el hyperterminal pero he estado tocando y no lo entiendo muy bien Os queria pedir que me mandeis un manual del hyperterminal o me expliqueis por favor cuales son los pasos que tengo que dar para poder comuncarlo.
Cuando vea que todo esto funciona os pasare el programa, por si alguno queda interesado.
Muchas gracias

Un saludo
Título: RE: Estudiante en apuros
Publicado por: maunix en 23 de Marzo de 2006, 17:11:00
Escrito originalmente por monge_22
Hola de nuevo!
Por fin tengo mi programa dentro del pic, lo he modificado un poco porque he visto que no me iva a funcionar como deseaba y ademas en la depuracion tambien me daba fallos, pero esa etapa ya la he pasado, ahora tengo que comunicar pic con el hyperterminal pero he estado tocando y no lo entiendo muy bien Os queria pedir que me mandeis un manual del hyperterminal o me expliqueis por favor cuales son los pasos que tengo que dar para poder comuncarlo.
Cuando vea que todo esto funciona os pasare el programa, por si alguno queda interesado.
Muchas gracias
Un saludo


El hyperterminal no tiene mayor misterio si lo aplicas a los pics.  Es un transmisor/receptor de datos en ASCII principalmente (salvo que uses algún otro protocolo o conexión por modem).

Ese tema de la transmisión por usart surge una vez y otra, y en el foro hay muchos ejemplos y gente que lidió con el tema.

Si estas inseguro, te aconsejo que hagas una búsqueda antes de intentar tus propias rutinas.  Tal vez te allane terreno.

Saludos
Título: RE: Estudiante en apuros
Publicado por: adan877 en 24 de Marzo de 2006, 08:37:00
Hola monge,ese IR que aparece en el link es un receptor, te sirve pero mas importante es el emisor que debe tener cierto alcance,cuadra primero el emisor y luego cualquier receptor infrarrojo te servira.
Título: RE: Estudiante en apuros
Publicado por: Slalen en 25 de Marzo de 2006, 07:27:00
No me deja enviar el esquema por falta de espacio y sólo ocupa 33K!! desquiciado
Si alguien lo quiere q me lo pida y se lo envio lo más rápido posible Giño
Título: RE: Estudiante en apuros
Publicado por: maunix en 25 de Marzo de 2006, 08:14:00
Escrito originalmente por Slalen
No me deja enviar el esquema por falta de espacio y sólo ocupa 33K!! desquiciado
Si alguien lo quiere q me lo pida y se lo envio lo más rápido posible Giño


No has visto el temario sobre como se puede hacer para subir imagenes o archivos y que sean vistos en el foro?

http://miarroba.com/foros/ver.php?foroid=6510&temaid=4863967

Saludos
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 30 de Marzo de 2006, 11:27:00
hola de nuevo!
Gracias Slalen por el codigo, no lo entiendo mucho porque estoy programando en c++ y las funciones de ensamblador no me las se, pero me las he bajado y lo estoy estudiando para ver si puedo sacar algo en claro.
Ando ahora intentando comunicar con el hyperterminal, creo hacer todo los pasos bien, pero no consigo que me aparezca nada en la pantalla, no se muy bien lo que pasa si ma;ana sigo igual, os enviare el codigo por si es eso lo que me falla.

Otro problemilla que tengo es con la comunicacion con el control remoto. Tengo que buscar un mando como minimo de tres botones que son los que voy a usar, pero he estado mirando los mandos de control ir y no me bajan de 50 euros, que me parece mucho dinero para que despues se lo quede la universidad, si conoceis de alguna pagina que sean baratos, os agradeceria que me lo digerais.
Otra solucion que puedo tomar es utilizar el siguiente mando (PHILIPS teletex decoder board kit - RC IR Handset) es un mando que tenian en la universidad, pero es de television, vosotros creeis que lo puedo usar igual, aunq solo use tres botones?
Si lo puedo usar, este mando me va a complicar mucho mas el proyecto que si me comprara el mando ir de tres botones.
En este momento cualquier comentario seguro que me ayuda a tomar una decision.

Muchas gracias
Un saludo
Título: RE: Estudiante en apuros
Publicado por: maunix en 30 de Marzo de 2006, 13:04:00
Escrito originalmente por monge_22
hola de nuevo!
Gracias Slalen por el codigo, no lo entiendo mucho porque estoy programando en c++ y las funciones de ensamblador no me las se, pero me las he bajado y lo estoy estudiando para ver si puedo sacar algo en claro.
Ando ahora intentando comunicar con el hyperterminal, creo hacer todo los pasos bien, pero no consigo que me aparezca nada en la pantalla, no se muy bien lo que pasa si ma;ana sigo igual, os enviare el codigo por si es eso lo que me falla.



Una aclaración, seguramente programas en C# no en C++.  En los microcontroladores no tiene sentido trabajar orientado a objetos.

El tema del hyperterminal no me quedó claro.  Le envias datos con el PIC a la PC y no lo ves con el hyperterminal? o es al reves?
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 31 de Marzo de 2006, 03:55:00
Si uso c, no c++.
Lo del hyperterminal, no me sale nada en la pantalla del ordenador, ni tan siquiera un printf como bienvenido al programa.
Voy a intentar todo el dia de hoy que me salga algo, si no me sale na os envio el codigo que estoy metiendo y todo lo que hago, para ver si hago algo mal.
Demomento nada mas
Un saludo
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 31 de Marzo de 2006, 04:32:00
hola
Mira este es el programa que pongo, este programa es simplemente para que me salga por la pantalla del hyperterminal lo que hay en el printf, y no me sale nada que crees que puedo hacer mal?

#include <16F628.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES ER                       //External resistor osc, with CLKOUT
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES MCLR                     //Master Clear pin enabled
#FUSES LVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOCPD                    //No EE protection
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=9)

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   printf("Esto significa que comunica
 "Giño;

}


El programa lo compilo y no me da ningun error, la comunicacion la pongo a 9600, tengo todo conectado correctamente, Pb1 - Rx, Pb2 - Xmit
Ya no se me ocurre que puede ser si alguien ve algun error, me seria de mucha ayuda.
Muchisimas gracias
Un saludo
Título: RE: Estudiante en apuros
Publicado por: Slalen en 31 de Marzo de 2006, 07:38:00
Gracias maunix,no lo había leídoEnfurruñado
La página con el esquema es http://picserver.org/v/33XE7265RWWY
Título: RE: Estudiante en apuros
Publicado por: monge_22 en 01 de Abril de 2006, 05:17:00
Hola de nuevo.
Os queria comentar, tras tirarme ayer todo el dia para usar hyperterminal con mi pic y no conseguir nada, un compa;ero me dejo su pic 16F877, lo probe modifique los puertos para la comunicacion y con este no tube ningun problema, con lo que he decidido cambiar de pic.
No tendre ninigun problema por cambiar de pic ahora no?
La unica diferencia que veo con este pic esque tiene muchos mas puertos que no utilizo, pero lo importante es que funciona, no?
Un saludo
Título: RE: Estudiante en apuros
Publicado por: maunix en 01 de Abril de 2006, 08:22:00
Escrito originalmente por monge_22
Hola de nuevo.
Os queria comentar, tras tirarme ayer todo el dia para usar hyperterminal con mi pic y no conseguir nada, un compa;ero me dejo su pic 16F877, lo probe modifique los puertos para la comunicacion y con este no tube ningun problema, con lo que he decidido cambiar de pic.
No tendre ninigun problema por cambiar de pic ahora no?
La unica diferencia que veo con este pic esque tiene muchos mas puertos que no utilizo, pero lo importante es que funciona, no?
Un saludo


En general todos los pics 16Fxx son "similares".  Con esto te quiero decir que en general no tienes problemas con los códigos pero si hay que ser cuidadoso de que si un dato antes era por un puerto despues al cambiar de pic ese puerto tambien exista y esté disponible!  

Esos son los cuidados principales

El 16F877 es el hermano mayor de todos los 16F y tiene casi todas las funcionalidades que tienen los otros y digo "casi" porque hay pics 16F que tienen cosas muy específicas que el 877 no tiene como por ejemplo nanowatt technollogy con clock interno de 4Mhz o coneccion como USB, etc


Saludos