Autor Tema: MicroChip CURSILLO (Empezar desde cero)  (Leído 29847 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #105 en: 02 de Julio de 2004, 15:13:00 »
Como que nos hemos detenido...

no nos quedemos dormidos sigamos con algun otro ejemplo



Saludos..



Atte.

Chile_irc

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #106 en: 03 de Julio de 2004, 07:14:00 »
Esto esto, venga seguimos!!!!!!! Aunk no tengo mucho tiempo quiero seguir aprendiendo con vosotros.

Desconectado andyros

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #107 en: 04 de Julio de 2004, 06:40:00 »
Hola,  que os parece si empezamos con los retardos.
Una pequeña aclaracion,  primero,  el pic con un cristal de 4Mhz realiza una instruccion en 1 microsegundo,  que es igual a la millonesima parte del segundo, fijaros que rapido es.
Si ponemos a 1 una salida del pic ( bsf ) tardara 1 microsegundo , y si la apagamos ( bcf ) seguidamente tardara otro microsegundo , en 2 microsegundos hemos encendido y apagado un led , eso para nuestros ojos que son tan vagos ni siquiera lo han apreciado , la solucion es poner un retardo entre el encendido y apagado , ok.

Otra aclaracion, un byte es igual a 8 bits , ( cuidado que es muy facil equivocarse ) un bite puede tener 2 estados " 0 " o " 1 " y un byte tiene 8 bits , 1 byte = 00000000 .....11111111, con 8 bits solo podemos contar hasta 256.

Si tenemos un registro ( de 1 byte ) podremos contar solo 256, pero si tenemos 2 ¿ cuanto podremos contar ?.
Si cada vez que termina el primer registro de contar incrementamos el segundo en una unidad  podemos obtener 256 x 256 = 65536 microsegundos / 1000 = 65.536 milisegundos  = 0.065536 segundos , uffff nos vamos acercando para que nuestros ojitos vean como se enciende y se apaga el led .

Si os parece comentamos esto y cuando no hayan dudas seguimos , ok.

UN SALUDO


Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #108 en: 05 de Julio de 2004, 07:31:00 »
Hola Gente Aver..

si con dos registros cargados a 256 con uno mas con un valor de 15 podriamos lograr 1 segundo y algo mas, para se exactos

1.04 seg. Para ello tendriamos que asignar primero que nada un lugar dentro de la ram para estos 3, para luego en alguna parte del programa ir a una subrrutina en el cual se se carga el primer registro con 256 (FF) decrementar este luego detectar si es 0 y pasar al otro, esperando lo mismo, saltar al ultimo y cuando este sea 0 ya tendremos un segundo aprox.

algo asi?.

Saludos
Chile_irc.


Desconectado sandra_rcb2000

  • PIC12
  • **
  • Mensajes: 92
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #109 en: 06 de Julio de 2004, 10:38:00 »
Hola como muchos de ustedes e caído en la cuenta que es necesario aprender ASM auque no nos guste  así que me apunto  aunque la verdad del tema lo único que conozco son las instrucciones y en ASM solo e logrado hacer parpadear un led y admito que las rutinas del delay las e copiado y no las entiendo muy bien por  ahora me sewra difícil seguirles ya que no tengo programador y un amigo me iba a conseguir uno pero me a quedado mal no digo su nombre para que no se ofenda  tengo la idea de que podríamos desarrollar un pequeño entrenador con algunos apagadores y leed para comenzar siento que con un f84 estará bien bueno espero sus comentarios

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #110 en: 06 de Julio de 2004, 10:57:00 »
Hola sandra_rcb2000,

pues si tienes problemas para armar tu propio programador puedes comprar uno si vives en el DF, sólo ve al centro (calle Rep. del Salvador) y busca en las plazas de electrónica. Vas a encontrar unos programadores de PIC16F84 y otros PICs que Solaris Digital hace.

Son programadores JDM que por mucho tienen 3 transistores, unos capacitores y uno que otro diodo, al parecer no es caro pero cuesta 450 pesos más o menos

Yo lo compré porque soy muy malo para hacer circuitos en tablillas fenólicas.

Ya que te hayas convencido de comprarlo sólo baja este programa:

http://www.qsl.net/dl4yhf/winpicpr.html

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #111 en: 13 de Julio de 2004, 11:37:00 »
¿Seguimos?

Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #112 en: 15 de Julio de 2004, 06:57:00 »
Ya era Hora jejej  

Chile_Irc

Desconectado sandra_rcb2000

  • PIC12
  • **
  • Mensajes: 92
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #113 en: 18 de Julio de 2004, 14:50:00 »
Hola me tomo el atrevimiento de interrumpir su curso para realizar una aclaración con respecto al post que coloque aquí con respecto a que un amigo me avía quedado mal con lo del programador al final de la frase coloque caritas de broma que no aparecieron y el amigo mío hoy se encuentra muy ofendido con justa razón ocupo este espacio para acralar que solo es un mal entendido y una mala broma que por lo que miro me a salido muy mal así que te pido una disculpa publica si de alguna manera te e ofendido y al foro por ocupar este espacio para realizar esta aclaración

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #114 en: 21 de Julio de 2004, 07:30:00 »
Sisco, pues la verdad, es que a mi me da que están todos de vacaciones... porque ya se va notando que cada vez hay menos gente...
estoy reduciendo la cantidad de copas vendidas dia a día...
o la gente está tirada en la playa, o están ahorrando para irse dentro de 10 días...

Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #115 en: 21 de Julio de 2004, 07:58:00 »
Hola gente bueno acso yo estoy pintado jajajaj

Bueno si no hay muchos por aca yo sigo siendo fiel alumno..

Asi ke sigan no mas que todos los dias estoy leyendo los post y probando lo que aqui se publica

Bueno un saludo desde mi tierra y espero buenas nuevas pronto...

Chile_Irc  

Desconectado andyros

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 70
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #116 en: 21 de Julio de 2004, 08:52:00 »
Hoooooola, bueno de vacaciones , todavia no, pero contando los dias que faltan, este año las necesito.  

Con respecto al curso he estado un poco liado , estoy haciendo un amplificador para el ordenador y el previo me esta dando un  dolor de cabeza , se me acopla ruido de alimentacion a traves del previo y me estoy peleando con el , por eso he dejado un poco abandonado el foro, pero tranquilos que entre todos seguiremos, por mi parte intentare buscar tiempo.

Sispic ha aclarado muy bien las posiciones y los numeros que podemos contar .

En un  semana y media estare de   VACACIONES   y estare mas tiempo con vosotros.

UN SALUDO

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #117 en: 01 de Agosto de 2004, 14:22:00 »
Compañeros, quisiera expresar una sugerencia para los profesores mas que nada ...

Tengo entendido que es mas sencillo realizar programas en "C" que en ensamblador, y con algunos ejemplos (5) que he visto creo que seria conveniente si tambien se enseñara a manejar el PBP o PCW para major sencillez.

Por ejemplo este programa:

#include <16c84.h>    /* Dispositivo a utilizar */
#bytepuertaa=05                  /* Posición de la puerta A */
#bytepuertab=06                  /* Posición de la puerta B */

void main(void){

int valor;                                  /*  Valor temporal */
set_tris_a (Oxff);                 /*  Oxff ---> TRISA */
set_tris_b (0x00);                /*  0x00 ---> TRISB */
do {
valor = puertaa;   /*   PuertaA --> valor */
valor +=2;   /*   se incrementa valor en 2 */
puertab = valor;   /*   valor —> puertaB */
} while (TRUE);   /*   Bucle infinito */

creo que es un buen ejemplo para empezar no masters??

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #118 en: 01 de Agosto de 2004, 18:48:00 »
Está muy bien,YF-21.
Ahora fíjate en los cambios que he hecho y te comento las cosillas que yo veo.

Codigo:

#include <16c84.h>              // Dispositivo a utilizar  
#use delay(clock=10000000)       // Frecuencia del cristal
#fuses HS,NOWDT,NOPUT,NOPROTECT  // Fusibles

#byte puertaa = 5    // Posición de la puerta A
#byte puertab = 6    // Posición de la puerta B

void main(/* aquí dentro no es necesario poner el "void" */) {
  int valor;           // Valor temporal
  set_tris_a(0xff);    // Oxff ---> TRISA
  set_tris_b(0x00);    // 0x00 ---> TRISB
  while(TRUE) {        // Bucle infinito
    valor = puertaa;   // PuertaA --> valor
    valor +=2;         // se incrementa valor en 2
    puertab = valor;
  }      
}   // Llave que se abra,llave que se debe cerrar



No se te puede pasar especificar la velocidad del oscilador,y también hay que especificar en la parte de los fusibles de qué tipo es (HS > 4 MHz)
Los fusibles que hemos usado son:
Oscilador de tipo HS.
Watchdog desactivado.
Power up timer desactivado.
Protección de código desactivada.
En cuanto al uso que haces del do-while,es totalmente correcto,pero ten en cuenta que dicho bucle se va a ejecutar,sin condición alguna,siempre, por lo que es más práctico usar un while normal y corriente.El do-while se usa para cuando queremos que nuestro bucle se ejecute al menos una vez,sean cuales sean las circunstancias.De esta forma,el siguiente bucle se ejecutaría una vez:
Codigo:
 
do {
  delay_ms(1000) // Retardo de 1 segundo
}while(FALSE);



Otra cosa que yo tendría en cuenta es que "valor" es una variable de tipo entero cuyo valor puede estar comprendido entre -128 y 127(8 bits),por lo que cuando esta variable alcanza su valor máximo y la vuelves a incrementar,toma de nuevo su valor mínimo(-128),y así de forma indefinida.

Saludos

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: MicroChip CURSILLO (Empezar desde cero)
« Respuesta #119 en: 02 de Agosto de 2004, 00:29:00 »
Algunas mejoras más:

- No es necesario asignar variables a posiciones de memoria con #byte, es más cómodo que sea el compilador quien las asigne.

- int valor es una variable de tipo entero pero sin signo cuyo rango va de 0 a 255.

- Aunque YF-21 haya puesto valor+=2, esta variable solo se incrementa lo que valga el PORTA más 2 y de ahí no pasa, ya que a cada vuelta del lazo while lee primero el PORTA y lo asigna a valor.