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

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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Ejemplitos en C para 16F648A
« Respuesta #120 en: 28 de Septiembre de 2005, 05:36:00 »
Quizás sea suficiente de momento con poner los nombres de todos los ejemplitos en el mensaje nº 1 del post, y editarlo cada vez que añadas uno.
Ya se que es pedirte aún más, después de todo lo que nos ofreces a diario, pero quizás dotaría de mayor orden y riqueza a este hilo, que en vez de llamarse "Ejemplitos" debería llamarse "Ejemplazos".

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #121 en: 28 de Septiembre de 2005, 05:46:00 »
El orden es importante...buena idea, lo ideal seria poner el nombre del programa, una brebe descripcion y el enlace para llegar al mismo,no? lo que pienso que el enlace para acceder al mismo no llegaria al programa en si sino a la pagina donde esta escrito, hay alguna forma de llegar al programa en si? pero bueno si no la hay de todas formas ordenados van a estar! espero tu respuesta para ponerme manos a la obra!GRACIAS de nuevo por la sugerencia!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: Ejemplitos en C para 16F648A
« Respuesta #122 en: 28 de Septiembre de 2005, 05:48:00 »
mmmm... escuche host gratis????

bueno si quieres uno me avisas..... lo unico malo es que no tiene activada la funcion send mail, lo que trae un pooco de inconvenientes... descrivo un poco las caracteristicas


100MB
3GB transferesncia/mes
PHP, Perl/CGI-BIN
MySQL database 5mb
FTP access
Web-based file manager

bueno todo eso entre otras cosas mas... en realidad es el mejor que tengo

apsss se me olvidava algo

colocan una publicidad la cual no es gran problema eliminarla con un par de lineas de codigo

si te interesa hablamos por privado para que sea mas reservada la cosa asi durara mas la cosaGiño

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Ejemplitos en C para 16F648A
« Respuesta #123 en: 28 de Septiembre de 2005, 05:53:00 »
Sí, claro, no podrías poner línks a los mensajes que tienen los programas. Aunque quizás con decir en qué pagina están sería suficiente.

Pero es sólo una sugerencia, no lo veas como una petición, eh.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #124 en: 28 de Septiembre de 2005, 06:04:00 »
Jeje...MUCHISIMAS GRACIAS!!! xootraoox por el dominio!pero no me hagas caer en la tentacion de crear una web!!!jeje repito, muchas gracias!pero de momento no quiero diseñar ni mantener una web....jeje

Nocturno66 la idea del orden y del indice es genial! hombre, mas que nada por si alguien le da por buscar un ejemplito de como se programa la interrupcion externa INT/RB0 no tenga que tragarse 39 ejemplos anteriores de encender/apagar un led, manejo lcd,.........termina por cerrar el post y preguntar si alguien tiene ejemplos de programacion sobre la interrupcion externa......GRACIAS por la sugerencia!

Y bueno me voy a poner mano a la obra...
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: Ejemplitos en C para 16F648A
« Respuesta #125 en: 28 de Septiembre de 2005, 06:09:00 »
mmmm....

frimo mi compromiso de que yo me dedicare a recopilar los ejemplillos y colocarlos en una web....

apsss eso si cuando tenga un poquito de tiempo... que por esta semana es lo que mas me faltalocoloco

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #126 en: 28 de Septiembre de 2005, 09:07:00 »
Jeje bueno la primera version del indice de ejemplitos del post esta realizada!!!jeje haber si la puedo mejorar, pero vamos por lo menos ya estan ordenados como bien sugirio el amigo nocturno66, xootraoox cuando puedas!jeje tampoco corre prisa jeje GRACIAS! y ya hay algo nuevo....un INDICE!!!jejeGiño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Ejemplitos en C para 16F648A
« Respuesta #127 en: 28 de Septiembre de 2005, 09:14:00 »
joer, que curro vszener !! fantastico tio
Si juegas contra el mejor, pierdes como los demás.

Desconectado vitervi

  • PIC12
  • **
  • Mensajes: 56
RE: Ejemplitos en C para 16F648A
« Respuesta #128 en: 28 de Septiembre de 2005, 10:09:00 »
Hola a todos,

Una pregunta muy tonta, ya tengo el CCs como te dije, ahora mi pregunta es:

El proteus demo que hay por alli, es decir en la web de proteus ya me sirv, es que tengo un proteus algo viejo.

Gracias

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #129 en: 28 de Septiembre de 2005, 10:26:00 »
Creo que el amigo Lordlafebre comento en algun post que la demo de PROTEUS solo sirve para simular los ejemplos que trae consigo, por lo tanto tendras que buscarte como minimo la version PROTEUS 6.7 sp3.....si preguntas donde conseguirla, decirte que hay programas P2P(tipo emule, kazaa, etc....) donde la podras encontrar con el nombre : PROTEUS 6.7 sp3 y asi descargartela....Los ejemplos estan realizados con la version que te indique antes. Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplitos en C para 16F648A
« Respuesta #130 en: 28 de Septiembre de 2005, 10:56:00 »
Hola:

No se mucho de como son los demos pero corrijanme si estoy mal: hay una version LITE y otras versiones demo...? por ejemplo de esas que duran cierto tiempo pero que permiten su total funcionamiento....?

La version demo que vi fuen en la PC de un amigo y es como tu comentas solo deja simular los ejemplos que viene en la demo... para los diseños que haces tu no aparece la barra para simular...!

Desconectado monopic

  • PIC10
  • *
  • Mensajes: 25
RE: Ejemplitos en C para 16F648A
« Respuesta #131 en: 28 de Septiembre de 2005, 22:08:00 »
Gracias Vzener por al menos decirme que se podria hacer no me importa cual sea el resultado final pero me gustaria por lo menos pintar una especie de coche o algo asi o alguna figura en movimiento ,,, pero dime por donde empezaria,,,quisiera hacerlo en el menor tiempo posible.. gracias por todo...responde porfa ... saludosGiño

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #132 en: 29 de Septiembre de 2005, 05:36:00 »
Ke tal!!! monopic para empezar deberas definir nuevos caracteres y guardarlos en la memoria de a lcd para un uso mas comodo, tendras definir rayas verticales y horizontales(aunque para la vertical quizas te valga la I mayuscula) pero para dibujar un coche sera tipo cuadrado jeje vamos una caja de cerillos!a no ser que se te de mejor el dibujo que ami...algo asi:
Codigo:

            ------                   1ºFILA
      --- |       |----
     |________________|             2ºFILA


Tendras que hacer los caracteres idoneos para la realizacion del coche....despues su movmiento es facil, simplemente desplaza una posicion todos los caracteres definidos, ahi un ejemplito en este ost de desplazamiento de palabras! Suerte!!!

Olotill GRACIAS!!!jeje por seguir mis ejemplitos!me alegro que estes ya por las lcd"s eso significa que ya has pasado y aprendido a encender/apagar led"s jeje con respecto a tu pregunta del %c es decirle a la funcion printf como voy a mostrar el dato, es decir:
Codigo:

              %c --> El dato a mostrar es tipo caracter (letras, ASCII,...)
              %d --> El dato a mostrar es tipo entero (numeros enteros)
              %f  --> El dato a mostrar es tipo float (numeros decimales)
              %x --> El dato a mostrar es tipo hexadecimal
Si se le pone una l delante:
              %ld --> El dato a mostrar es tipo double


ok???Si tienes alguna duda preguntamela!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #133 en: 29 de Septiembre de 2005, 13:02:00 »
Buenas!!!!el ejemplo de hoy se trata de manejar el periferico interno ccp(modulos de captura: comparacion y modulacion de anchuras de pulsos), el cual puede actuar de las siguientes maneras: Como captura, como comparacion o como modulacion de anchura de pulsos(PWM). En este ejemplo lo vamos a configurar como comparacion. Es decir por la patita RB3/ccp1 conectaremos una señal de pulsos la cual generara una interrupcion cada flanco de subida(un 1 logico por dicho pin) pero si pulsamos el boton conectado a la patita RB0/int generara una interrupcion externa(ya programada e el ejemplo anterior...)la cual cambiara el modo de comparacion, pasando este a capturar y generar una interrupcion por el pin RB3/ccp1 cada flanco descendente es decir de bajada(un 0 logico por dicho pin)...bueno y la interrupcion lo que hace es simplemente aumentar indice de contador para mostrar numeros del 0 al 9 en bcd....lo importante es saber programar los perifericos! aqui el programa:

////////////////////////////////////////////////////////////////////////////////////
//                     VsZeNeR"05      
//                   29/Septiembre/05
//
//   Programa:   Uso del CCP1 como comparador ascendente/descendente
//   Version:   0.0
//
//   Dispositivo: PIC 16F648A         Compilador:    CCS vs3.227
//   Entorno IDE: MPLAB IDE v7.20      Simulador:    Proteus 6.7sp3
//
//   Notas: Contador 0 al 9 usando interrupcion ccp1 por el pin B3/ccp1. Si no pulsamos
//         el boton, la cuenta del contador sera cada flanco ascendente que entre por
//         la patita RB3/ccp1, en cambio si pulsamos el boton, la cuenta del contador sera
//         cada flanco descendente que reciba el pin RB3/ccp1. Tener en cuenta que hay que
//         poner la directiva NOLVP para que el pin B4 sea de salida. Aparte se a programado
//         mediante la instruccion INTRC el oscilador interno de 4MHz asi tendremos las
//         patitas RA7 Y RA6 libres.
//
//   Conexiones:      A0 -> A             
//               A1 -> B
//               A2 -> C
//               A3 -> D
//               B0 -> Interrupcion externa
//               B3 -> Interrupcion ccp1
//   BCD:
//            d c b a   NUM
//            0 0 0 0    0
//            0 0 0 1    1
//            0 0 1 0    2
//            0 0 1 1    3
//            0 1 0 0    4
//            0 1 0 1    5
//            0 1 1 0    6
//            0 1 1 1    7
//            1 0 0 0    8
//            1 0 0 1    9
//////////////////////////////////////////////////////////////////////////////////

#include <16f648a.h>            //pic a utilizar          
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP      //ordenes para el programador
#fuses INTRC   //oscilador interno
#use delay (clock=4000000)         //Fosc=4Mhz
#use standard_io(b)
#use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3)

///VARIABLES GLOBALES
char i=0;   //contador para tabla BCD
char tabBCD[10]={0b0000,0b0001,0b0010,0b0011,0b0100,0b0101,0b0110,0b0111,0b1000,0b1001};//BCD 0-9
boolean var=0;   //variable para captura en alto(var=0) o en bajo(var=1)

///LLAMADA FUNCION INTERRUPCION
#INT_CCP1
void ccp1()
{
   if(i>9)               //¿se ha mostrado digito 9?
      i=0;            //SI -> restaura valor indice(para mostrar digito 0)
   output_a(tabBCD[ i ]);    //muestra por porta digito 7 segmentos   
   i++;               //incremento contador indice tabBCD      
}

#INT_EXT
void IntRB0()
{
   var=!var;                     //complementa valor de modo
   if(!var)                     //¿var!=0?
      setup_ccp1(CCP_CAPTURE_RE);     //SI -> ccp1 modo captura configurado flanco ascendente
   else
      setup_ccp1(CCP_CAPTURE_FE);     //NO -> ccp1 modo captura configurado flanco descendente
         
}      
///PROGRAMA
void main(void)
{
   setup_ccp1(CCP_CAPTURE_RE);     //ccp1 modo captura configurado flanco ascendent
   enable_interrupts(int_ext);      //activar interrupcion externa
   ext_int_edge(H_TO_L);         //configuracion:interrupcion cuando señal esta en baja
    enable_interrupts(INT_CCP1);    //activar interrupcion en ccp1
   enable_interrupts(GLOBAL);      //todas las interrupciones desactivadas

   for( ; ; ){}   //bucle infinito esperando interrupcion
}

Fijarse bien en la simulacion en PROTEUS en la patita RB3/ccp1 cuando hay un cuadrado rojo o azul, el rojo indica entrada en alta y el azul en baja asi pulsando el boton sabreis como esta configurado el ccp1 en comparacion en flanco ascendente o descendente.Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Ejemplitos en C para 16F648A
« Respuesta #134 en: 29 de Septiembre de 2005, 13:04:00 »
Desde este enlace os podeis descargar lo necesario para el programa anterior: Uso y manejo del ccp1 configurado como comparacion en flanco ascendente/descendente geenrando una interrupcion


Suerte!!! :wink:
« Última modificación: 25 de Mayo de 2006, 10:59:32 por vszener »
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte


 

anything