Autor Tema: Ejemplitos en C para 16F648A  (Leído 736352 veces)

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

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #285 en: 18 de Julio de 2006, 16:10:20 »
Eso es porque no tienes integrado CCS en PROTEUS, puedes hacer dos cosas:

  1. Integrar el compilador CCS en PROTEUS, aqui en este post te puedes bajar un tutorial para tal fin: [MANUAL]   Integrar CCS en PROTEUS.
  2. Quitar el archivo para tener integrado el CCS en PROTEUS, para ello deberas seguir los siguientes pasos:
      En el menu de herramientas: Source -> Add/Remove Source files ->Remove
      Asi ya no tendras en el ejemplo para simular, integrado el CCS en PROTEUS.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Luis_Chogi

  • PIC10
  • *
  • Mensajes: 44
Re: Ejemplitos en C para 16F648A
« Respuesta #286 en: 22 de Julio de 2006, 01:32:59 »
Hola Vzener, tengo un problema con la lectura de un teclado matricial, lo que pasa es lo siguiente:

Trato de leer un teclado matricial para obtener un numero de dos digitos dentro de un ciclo, es decir que si yo presiono la tecla 1 y luego la 2, al final del ciclo obtenga yo el numero 12, esto lo quiero para que después de obtener este digito, ejecute un ciclo durante XX minutos, por ejemplo en este caso si presiono ‘1’ y ‘2’, yo ejecute un proceso durante 12 minutos (lo que yo estoy mostrando durante este tiempo es el voltaje  de un potenciómetro conectado RA0). Sin embargo no eh podido obtener este numero, espero que me puedas ayudar (TU ERES MI IDOLO... ayudameeeeeee plis).

Codigo:

int   unidad,decena,segundos;
char  c;
 
                                            // Llamo a la funcion para pedir los minutos
void pide_minutos(void){

   lcd_putc("\f Minutos:\n");   //imprimo mensaje en LCD

      for(k=0;k<=1;k++){               // Hago un ciclo para pedir dos numeros del teclado

         do {                                  //espera a que pulse una tecla
         c=kbd_getc();
         }while(c==0);   
  switch (c)
         {
           case '0' : if (k=1)         //Si es el segundo ciclo que la variable leida la ponga en unidad.
                      unidad=c;
                      else
                      decena=c;      // Si el ciclo se ejecuta por promera ver que el valor leido lo ponga en decena
           case '1' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '2' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '3' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '4' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '5' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '6' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '7' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '8' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           case '9' : if (k=1)
                      unidad=c;
                      else
                      decena=c;
           default :  if (k=1)      //si leo * o # que en unidad o decena ponga 0
                      unidad=0;
                      else
                      decena=0;
         }
      }

 decena=decena10;                            // multiplico decena por 10
segundos=decena+unidad;       // y aquí termina el proceso pero no sale………….

}

 

Posiblemente mi problema esta en las variables pero no se.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #287 en: 22 de Julio de 2006, 07:10:57 »
Buenas!!! sin estudiar bien el codigo, aqui hay un fallo de sintaxis en la sentencia if, te falta un igual, es decir, para comprobar si es igual o no, la sentencia if debe ser la siguiente:
Código: C
  1. if (k==1){
  2.                      codigo;
  3.                 }
  4.                else{
  5.                      codigo;
  6.                }

Pruebalo asi y si no te funciona ya nos metemos de lleno en ver el codigo


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Ejemplitos en C para 16F648A
« Respuesta #288 en: 22 de Julio de 2006, 13:09:24 »
Mmmmm, no preguntes lo mismo en varios sitios hombre, que al final cruzamos las respuestas y queda todo muy guarreado:
http://www.todopic.com.ar/foros/index.php?topic=13041.0

Desconectado Luis_Chogi

  • PIC10
  • *
  • Mensajes: 44
Re: Ejemplitos en C para 16F648A
« Respuesta #289 en: 23 de Julio de 2006, 03:03:52 »
si sorry nocturno, de todos modos ya tome tus consejos y pude hacer algo, me podrias dar tu opinion?, claro contestando en el otro link,  y tambien gracias VZENER.

 :D

Desconectado rashii

  • PIC10
  • *
  • Mensajes: 39
Re: Ejemplitos en C para 16F648A
« Respuesta #290 en: 20 de Agosto de 2006, 05:59:42 »
Una pregunta, el esquema de los diodos y el rs232 funciona sin poner el max232? yo hasta ahora creia que siempre habia que usar el max 232 pero veo que ahi prescindes de el, un saludo.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #291 en: 20 de Agosto de 2006, 08:08:09 »
¿A qué ejemplito te refieres?


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado rashii

  • PIC10
  • *
  • Mensajes: 39
Re: Ejemplitos en C para 16F648A
« Respuesta #292 en: 20 de Agosto de 2006, 10:33:44 »
A uno que pone rs232&leds, mas en concreto este:


Desconectado cla_vnzla

  • PIC10
  • *
  • Mensajes: 1
Re: Ejemplitos en C para 16F648A
« Respuesta #293 en: 20 de Agosto de 2006, 18:34:03 »
Saludos a todos los de este foro en especial a vszener la cual le digo que es un tremendo maestro, yo le pediria que realizara mas ejemplos con matrices de led 7x5 y de mas de 4 caracteres para saber como poder multiplexarlos, gracias.

Un caluroso saludos desde Maracaibo Venezuela. :lol:

Desconectado rashii

  • PIC10
  • *
  • Mensajes: 39
Re: Ejemplitos en C para 16F648A
« Respuesta #294 en: 21 de Agosto de 2006, 09:05:13 »
Otra duda que tengo y no entiendo es en el contador, pone esto:

//   Notas: Contador del 0 al 9 cada 0,5s y vuelta a empezar. Tener en cuenta
//         que hay que poner la directiva NOLVP para que el pin B4 sea de salida

¿Para que se necesita que el pin b4 sea de salida? no son todos de salida?

Un saludo y felicidades por el post

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #295 en: 21 de Agosto de 2006, 09:26:04 »
Buenas!!! En el montaje deberas añadir el max232, en las simulaciones se omite ya que no es necesario para probar el programa en sí y de esta forma se ahorra tiempo, de todas formas, en la pagina numero 7 de este post, puse el primer ejemplo de manejo del hyperterminal con el respectivo max232 y aclaré que no es necesario para las simulaciones por lo tanto lo omitiría.

Gracias cla_vnzla por tu comentario!!!a ver si tengo algo de tiempo libre y me pongo manos a la obra!!!

rashii, los pines son bidireccionales siempre y cuando los programes para tal fin, debes mirarte el data sheet del microcontrolador a usar y programar los pines a las necesidades del programador y de la aplicación, hay que poner la instrucción NOLVP para indicar que queremos usar dicho pin como un periferico de entrada/salida.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado rashii

  • PIC10
  • *
  • Mensajes: 39
Re: Ejemplitos en C para 16F648A
« Respuesta #296 en: 21 de Agosto de 2006, 11:25:28 »
gracias vszener, no habia leido lo del max232 en la otra pagina :)

Respecto a lo de que son bidireccionales si lo programas asi no lo sabia, creia que podian ser o solo de entrada o solo de salida, pero en ese caso, ¿para que quieres que sea de entrada y salida a la vez ese pin? ¿no te vale con que sea solo de salida si no tiene conectado ningun interruptor ni nada para leer? Un saludo

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #297 en: 21 de Agosto de 2006, 14:03:25 »
Me he explicado mal :? jeje, cuando digo que los pines pueden ser bidireccionales, me refiero a que s epueden programar de entrada o de salida, no que sean de entrada/salida simultaneamente, pero el pin RB4, si te miras el data sheet, para que sea un pin de entrada o de salida debemos desactivar la programación en bajo nivel, por lo tanto debemos especificar en el compilador en los fuses el novlp.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado rashii

  • PIC10
  • *
  • Mensajes: 39
Re: Ejemplitos en C para 16F648A
« Respuesta #298 en: 21 de Agosto de 2006, 15:04:39 »
Gracias vszener, es que no lo encontre en el datasheet (son mas de 200 paginas)...pero ya me quedo claro, es que no entendia porque al principio no lo ponias en los primeros ejemplos y luego si, pero ahora con la respuesta me quedo claro, ya que al principio usabas lo de fast_io claro con eso no hacia falta pero luego con el standard_io si. Un saludo.

Desconectado quirogaareal

  • PIC16
  • ***
  • Mensajes: 180
Re: Ejemplitos en C para 16F648A
« Respuesta #299 en: 25 de Septiembre de 2006, 17:12:31 »
Hola :

Tendrias algun ejemplito de como manejar un variador de velocidad de motores?


Recuerda : Si una mujer te ama de verdad no te pedira ni Matrimonio, Ni concubinato , Ni hijos, No te mentira , ni buscara que cambies de opinion con respecto a las tres primeras opciones.

Saludos

desde Cordoba Argentina