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

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

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: Ejemplitos en C para 16F648A
« Respuesta #375 en: 28 de Marzo de 2008, 04:04:32 »
bueno,te digo que yo sepa,este fuse,el NOLVP,es para decirle al micro que trabaje con 3.6 volts,en lugar de los 5 volts, sino es asi,ruego me lo digan,ahora,yo creo que antes de hacer tu tarjeta de desarrollo,prueba el proteus, que es un programa que te simula tus programas compilados,solo cargas el .hex y ya esta,a saber si funciona o no,ahora si quieres armarla,adelante,ya que las practicas que ha hecho el maestro Redpic son compatibles,saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #376 en: 31 de Marzo de 2008, 05:44:15 »
El fuse NOLVP es para programación en bajo voltaje.


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

Desconectado DDG

  • PIC10
  • *
  • Mensajes: 23
Re: Ejemplitos en C para 16F648A
« Respuesta #377 en: 10 de Abril de 2008, 19:19:31 »
Hola bueno este es mi primer mensaje en el foro espero no sea del todo muy egoista pero el link de el manual en español de C para pics que esta en el primer mensaje no funciona alguien podria decirme donde localizarlo por fabor y por otra parte quiziera felicitar atodos los moderadors y usuarios de este foro pues realmente es sorprendente todo lo que se puede encontrar en el. devo decir que si mi maestro de universidad conociera esta pagina su clase no fuera tan aburrida pues existen muchisimos proyectos intereseanes y practicos que realmente motivan a aprender esto de los pics, bueno por el momento es todo espero poder contribuir algun dia a esta comunidad.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #378 en: 11 de Abril de 2008, 10:21:15 »
Gracias por avisar del link roto, ya está solucionado, está en el primer post la dirección correcta que es este link.

Decirque que este documento es una traducción del manual antiguo del compilador de la empresa CCS.


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

Desconectado DDG

  • PIC10
  • *
  • Mensajes: 23
Re: Ejemplitos en C para 16F648A
« Respuesta #379 en: 12 de Abril de 2008, 10:59:38 »
OK el link funciona perfecto, muchas gracias, ya estaba liado con el manual en ingles y todo iva bien pero muy lento, espero que con esto se agilise mas un poco la curva de aprendisaje de estos tan utiles PIC's

Desconectado topocito

  • PIC10
  • *
  • Mensajes: 1
Re: Ejemplitos en C para 16F648A
« Respuesta #380 en: 13 de Abril de 2008, 10:28:09 »
hola  como estas  esta muy bueno el trabajo  sabes necesito  hacer  el encendido de unos leds de  matriz [3]*[2]  en funciones sera que me puedes ayudar para  ocho  tramos 
 :-/ :shock: :(

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Ejemplitos en C para 16F648A
« Respuesta #381 en: 16 de Abril de 2008, 10:06:20 »
Empieza el programa y tus dudas postéalas, cualquiera de los miembros, incluido yo, te hecharemos una mano en lo que podamos.

En este post, hay un ejemplito de manejo simple de una matriz.


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

Desconectado Bemor

  • PIC10
  • *
  • Mensajes: 1
Re: Ejemplitos en C para 16F648A
« Respuesta #382 en: 26 de Mayo de 2008, 15:56:40 »
Hola: Quería saludar a todos los participantes en el foro y deciros que estoy aprendiendo mucho,
aunque poco a poco, de todos vosotros.
Los ejemplos de vszener son muy buenos para aprender y las aportaciones de los demás muy
interesantes. Quiero que sepan que su trabajo nos sirve de mucho a otros.
Muchas gracias

Desconectado V0LC0M

  • PIC10
  • *
  • Mensajes: 1
Re: Ejemplitos en C para 16F648A
« Respuesta #383 en: 27 de Mayo de 2008, 12:59:20 »
Muy buenas¡ Querria saber si me pudierais hechar una mano con este ejercicio, y decirme si estaria bien hecho. La cuestion es que tendria que haberse hecho con "interrupciones" y no es asi, de todas maneras querria saber si funcionaria. Y por otro lado si me lo pudierais rehacer con las interrupciones correspondientes. Aqui os dejo el programa y el titulo, muchas gracias y un saludo.

Se ha de visualizar en el Lcd: Total=98 y cada vez que en el interruptor RA3 se produzca un flanco de bajada se suman 4 y cada 500ms se restan automaticamente 2
Nunca pueden sobrepasar los limites de 0 a 98. Si llegamos a 0 se ha de visualizar " Sin un duro" y si llegamos a acumular 98  se visualizara " Estoy forrado". En este punto se acaba el proceso.
El sistema empieza con 96

T   O    T    A   L      =   9   6                     
E   S   T   O    Y      F   O   R   R   A   D   O         

El recuadro del LCD no lo doy pintando pero serian 2 columnas de 16 filas empezando pegado a la derecha
Y aqui os dejo el ejercicio

#include "C:\Documents and Settings\User\Escritorio\FernandoLouzaoLeon.h"
#include <Lcdlib.c>
#include <stdlib.h>
#include <stdio.h>



void IniciaLcd( void );
void EscrituraLcd( int Dat, short RS );
void TextoLcd( char *cadea );


void main()
{
   
   
   int8 total;
   char cadena_total[]={"TOTAL ="};
   char cadena_euros[]={"96"}   
   char cadena_pierde[12]={"SIN UN DURO"};
   char cadena_gana[14]={ESTOY FORRADO};
   int8 nivel_anterior=1,nivel_actual;
     
   
   port_b_pullups(TRUE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
   set_tris_a (0b00000100);
   IniciaLcd();
   
     
   EscrituraLcd(0x80,CTRL);
   TextoLCD(cadena_total);
   EscrituraLcd(0x87,CTRL);
   TextoLCD(cadena_euros);     

   total=96;

   do{
     
     
     
      delay_ms(500);
      total=total-2;

     
      itoa(total,10,cadena_euros);
      EscrituraLcd(0x87,CTRL);
      TextoLCD(cadena_euros);

     
      nivel_actual=input(PIN_A3);
     
      if((nivel_anterior==1)&&(nivel_actual==0))
      {
           
         total=total+4;
               
      }

     
      itoa(total,10,cadena_euros);
      EscrituraLcd(0x87,CTRL);
      TextoLCD(cadena_euros);
         
     
      if (total>=98)
      {
         EscrituraLcd(0xC0,CTRL);
          TextoLCD(cadena_gana);
   
   break;
      }

      if (total<=0)
      {
         EscrituraLcd(0xC0,CTRL);
          TextoLCD(cadena_pierde);
   
   break;
      }   

     
      nivel_anterior=nivel_actual;
   
   }while(1);
}




Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplitos en C para 16F648A
« Respuesta #384 en: 26 de Septiembre de 2008, 16:52:49 »
Un saludo VSZENER. Te tengo un preguntica. estuve observando tus ejemplos para el manejo de un display de 7 secmento conectados en paralelo, la pregunta es la siguiente:

Si un micro hace una división de 16 BITS (2 registro), y se me toma mucho tiempo para realizar la operación, como hago para refrescar el display desde
la división para que no me parpadé los displays. Espero que me constestes un abrazo.

Un saludo desde Pereira - Colombia.
Un saludo desde Pereira - Colombia

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Ejemplitos en C para 16F648A
« Respuesta #385 en: 26 de Septiembre de 2008, 17:47:08 »
si quieres que el refresco de los display sea constante y no se retarde por rutinas largas, tendrás que utilizar interrupciones, para que cada vez qeu ocurra la interrupción tus displays sean refrescados, en esta aplicación tendrás que utilizar interrupcion de algún temporizador del micro

saludos
.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Ejemplitos en C para 16F648A
« Respuesta #386 en: 27 de Septiembre de 2008, 12:40:44 »
Hola.

Mira este link 7 Segmentos con int Timer0, puede ser util para ti.

Saludos
El papel lo aguanta todo

Desconectado yarelios

  • PIC10
  • *
  • Mensajes: 1
Duda
« Respuesta #387 en: 29 de Septiembre de 2008, 18:50:23 »
Holaaaa!!!, soy nueva en el foro y programando PICs, jeje, bueno el chiste es que entiendo bien que onda con lo del teclaod matricial, el problemilla aqui presente, es que por ejemplo mi teclado esta en
#define FILA1    PORTBbits.RB7    //ENTRADA
#define FILA2    PORTBbits.RB6    //ENTRADA
#define COLUMNA1 PORTBbits.RB4    //SALIDA
#define COLUMNA2 PORTBbits.RB3    //SALIDA
#define COLUMNA3 PORTBbits.RB2    //SALIDA
 bueno yo quiero manejarlo con matices en c, pero no se como, yo lo que hago es darle valor automático a las columnas y depues pregunto por la fila, pero eso es un gorro tremendo, lo que quiero es saber como implementar matrices, y si puedo hacer que columna[ i ] puede ser definida en  #define COLUMNA1 PORTBbits.RB4    //SALIDA....Para poder usar un ciclo y recorrerlas todas???...

Mil gracias!!! :shock:
« Última modificación: 29 de Septiembre de 2008, 19:00:39 por yarelios »

Desconectado kicho

  • PIC10
  • *
  • Mensajes: 39
Re: Ejemplitos en C para 16F648A
« Respuesta #388 en: 16 de Noviembre de 2008, 17:01:37 »
Hola, antes que nada darte las gracias por tanto ejemplo y tan claros.

queria decirte que e intentado montar el ejemplo 24 sobre el Mplab con el plugin para css y no hay manera, creo k es por una incompatibilidad de librerias , al menos eso e leido, pero queria saber que es lo k me pasa realmente. esto es lo k me da mplab:

Executing: "C:\Program files\Picc\CCSC.exe" +FH "flex_lcd_c.c" +EXPORT +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 128 "C:\Documents and Settings\Pedro Francisco\Desktop\16f84_flexlcd\flex_lcd_c.c" Line 28(142,183): A #DEVICE required before this line
C:\Documents and Settings\Pedro Francisco\Desktop\16f84_flexlcd\flex_lcd_c.o ===>  1 Errors,  0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Sun Nov 16 19:57:11 2008

Cuando monto tu ejemplo, por que me da este error??.

Un saludo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Ejemplitos en C para 16F648A
« Respuesta #389 en: 16 de Noviembre de 2008, 17:50:26 »
Hola.

No incluyas las librerias en Source Files. El CCS se encarga de todo  :mrgreen: , tu incluyelas en el codigo fuente con #include

Saludos
El papel lo aguanta todo