DTForuM


:brindis:    BIENVENIDO AL NUEVO DTForuM -- -- Si tienes alguna duda sobre el uso de este nuevo formato, puedes publicar tu mensaje en MENSAJES PARA EL STAFF ... .... D T F o r u M .... El de siempre, pero mejor !! 
..:: DTForuM.INFO ::.. Manuales de Servicio y toda la Información técnica - Uniendo a los amantes de la electrónica de todo el mundo. From here, to the world !!! 
..:: DTForuM.INFO ::.. Antes de pedir información, búsquela presionando el botón BUSCAR.
..:: DTForuM.INFO ::.. Punto de reunión de amantes de la electrónica.
..:: DTForuM.INFO ::.. ..:: 2005- 2006- 2007- 2008- 2009-2010- 2011- 2012- 2013- 2014- 2015- 2016- 2017-2018 ::..
...::DTForuM.INFO::... ...:::La mayor Comunidad de intercambio de Información Técnica:::... El de siempre, pero mejor !!

¡¡FELICES FIESTAS!!

Nuestros mejores deseos de parte del Staff de DTforuM

Premium Membership

Si abona su suscripción

con PAYPAL

solo costará

U$D 18 POR AÑO

Pague con Paypal o con Tarjeta de Crédito de forma SEGURA!

Nota: Si Ud. anula, elimina o desactiva la suscripción, perderá su calidad de Miembro Premium.

¿Qué es PayPal?

SUSCRÍBASE YA !

Otras formas de pago:

Donar + PREMIUM

Conviertase en MIEMBRO PREMIUM y acceda a más de 5 TeraBytes de información, de forma ilimitada.


No cobramos los archivos ni el material que los usuarios suben, solo les pedimos que cada uno pague por el ancho de banda que consume, ya que cada vez es más costoso el bandwidth y no podemos pagar lo que los usuarios descargan sin ningún tipo de control.

Bienvenido(a), Visitante. Por favor, ingresa o regístrate. ¿Perdiste tu email de activación?
diciembre 09, 2018, 20:00:16 pm

Ingresar con nombre de usuario, contraseña y duración de la sesión

AllDataSheets

Buscar Datasheet

CuentaDigital

Web Amiga

Clase Nro3 Curso de PICs

Visitante · 34 · 20214

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

hector27

  • Visitante
Respuesta #19 on: abril 28, 2009, 22:45:29 pm
Clasico error el mio.
Hice un loop que va de cero a doce, eso son 13 numeros y no doce; la frase "Curso de PIC" tiene 12 caracteres, por lo cual el loop que hice tiene un ciclo de mas.
Lo correcto era while(contador<12) o while(contador<=11) o while(contador !=12)

Es este caso ese ciclo de mas no generó ningun inconveniente, pero hay casos en que si se pueden generar, así que no hagan como yo, y sean mas cuidadosos.  Jejeje Jejeje Jejeje Jejeje Jejeje

Saludos!
Héctor


Desconectado Jorge José

  • ADMINISTRADOR - Administrator
  • STAR MEMBER !!!
  • **
    • Mensajes: 8423
    • DT$ 5203
  • PARA TODO EL MUNDO
Respuesta #18 on: abril 28, 2009, 09:10:37 am
dice menor que trece, y eso es hasta 12, ya que trece no es menor que trece.


Correcto  !! ,solo que ,me llamo la atención (por eso la pregunta) que lo hice con <12 e igual salieron todos los caracteres..
también probé con  <=11 con el mismo resultado ,correcto

o en este caso  se da :

Cita
El subindice va desde 0 al numero con que se dimensionó menos 1, ej: vector[10] va desde vector[0] a vector[9], que suman 10 variables tal como se dimensionó. El nombre del array a secas, sin los corchetes, (vector en el ejemplo) representa el puntero, tema que veremos pronto.
Se pueden declarar sin poner el tamaño (dimensionar poniendo los corchetes vacios), pero lo veremos mas adelante.

en el TP16 se cumple el <11 = a 10 loop  niidea niidea niidea
 graciassss  abrazoo

Para todas tus dudas te recomiendo leer Atentamente
-><-><-><->Como ->

 
____________________________________________


hector27

  • Visitante
Respuesta #17 on: abril 28, 2009, 08:15:53 am
dice menor que trece, y eso es hasta 12, ya que trece no es menor que trece.
Quizas hubiese sido mejor poner while(contador<=12), que deberia funcionar en forma identica, pero es mas entendible.
Saludos!
Héctor


Desconectado Jorge José

  • ADMINISTRADOR - Administrator
  • STAR MEMBER !!!
  • **
    • Mensajes: 8423
    • DT$ 5203
  • PARA TODO EL MUNDO
Respuesta #16 on: abril 28, 2009, 00:17:06 am
Coloco el resultado del TP17 modificado como practica .

Pregunta: porque 13 loop si son 12 caracteres ..o mejor que sosobre y no que fafalte  Jejeje.

Para todas tus dudas te recomiendo leer Atentamente
-><-><-><->Como ->

 
____________________________________________


hector27

  • Visitante
Respuesta #15 on: abril 27, 2009, 07:55:46 am
En el TP17 veremos otro ejemplo de vector, pero en este caso usando variables tipo caracter, en vez de enteros.
Como en C no existen las variables de texto, como si las hay en otros lenguajes, pero se logra usando un vector con caracteres de texto; un conjunto de caracteres es una cadena (string), es decir como si fuera una variable tipo texto. De esta manera puedo almacenar textos.
En el ejemplo pueden ver que se declara el array sin dimensionar (corchetes vacios), y tomará automaticamente la dimensión de la cadena de texto que le fue asignada.
Ademas de usar un loop para imprimir todos los caracteres de la cadena, tambien podemos usar la funcion printf, tomando el puntero de la cadena (el nombre del array sis los corchetes).
A compilar!

/* ----------------------------------------
-            Trabajo Practico Nro 17      -
-          Conjuntos de variables         -
-              Arrays de caracteres       -
-----------------------------------------*/
//incluyo las librerias
#include <stdio.h>
#include <stdlib.h>

//comienza la funcion principal
void main(void)
{
//defino un arreglo de variables tipo caracter, y local; dimensionado en forma automatica
//(esto es una cadena (string), y como el dimensionado es automatico, no pongo nada entre
//corchetes, lo hace el compilador.
char arreglo1[]="Curso de PIC";

// variable contador como indice
int contador;

//imprimo un titulo
printf("\nEl vector arreglo1[] contiene los siguientes caracteres: ");

//ahora imprimo el arreglo usando un loop
contador=0;
//hago el loop
while(contador<13)
{
printf("%c", arreglo1[contador]);
contador++;
}
//ahora imprimo lo mismo pero usando el puntero, y no hace falta el loop
printf("\nUsando el Puntero: %s", arreglo1);
return;
}


hector27

  • Visitante
Respuesta #14 on: abril 27, 2009, 07:42:36 am
Fe de Errata:
Donde dice:

El subindice va desde 1 hasta el numero maximo con que la declaré (tambien se pueden declarar sin poner el tamaño, pero lo veremos mas adelante); el subindice cero [0] no debe ser usado, pues está reservado para ser el puntero, que es dónde se guarda la direccion del conjunto, tema que veremos luego.

Debe decir:

El subindice va desde 0 al numero con que se dimensionó menos 1, ej: vector[10] va desde vector[0] a vector[9], que suman 10 variables tal como se dimensionó. El nombre del array a secas, sin los corchetes, (vector en el ejemplo) representa el puntero, tema que veremos pronto.
Se pueden declarar sin poner el tamaño (dimensionar poniendo los corchetes vacios), pero lo veremos mas adelante.


Perdón por la pifiada.


hector27

  • Visitante
Respuesta #13 on: abril 25, 2009, 11:06:48 am
Nos queda poco y lo que viene ahora, sobre todo los punteros, suele dar muchos dolores de cabeza, así que lean con cuidado, practiquen y yo tratare de abundar en ejemplos. Luego ya empezamos a trabajar con el PIC, así que no aflojen.

En el TP16 comenzamos a tratar los conjuntos de variables, veremos primero los arreglos simples (array) o vectores; que simplemente se trata de que cada variable del conjunto tiene el mismo nombre, pero con su propio subindice indicado entre corchetes, tambien todas las variables son del mismo tipo, por ej. todas son enteros.
No se declara cada variable individual, sino el conjunto, poniendo en el subindice el tamaño o dimension, que no es otra cosa que el numero de variables que contiene el conjunto.
Para trabajar con cada variable individual se usa el subindice.
El subindice va desde 1 hasta el numero maximo con que la declaré (tambien se pueden declarar sin poner el tamaño, pero lo veremos mas adelante); el subindice cero [0] no debe ser usado, pues está reservado para ser el puntero, que es dónde se guarda la direccion del conjunto, tema que veremos luego.

/* ----------------------------------------
-            Trabajo Practico Nro 16      -
-          Conjuntos de variables         -
-                Arrays                   -
-----------------------------------------*/
//incluyo las librerias
#include <stdio.h>
#include <stdlib.h>

//comienza la funcion principal
void main(void)
{
//defino un arreglo de variables enteras, y local; dimensionado a 10 variables
int arreglo1[10];

//hago un loop para cargar numeros en el arreglo
//en este caso guardare los cuadrados de los numeros del 1 al 10, en un verctor
// usando la variable contador como indice
int contador;
contador=1;
//hago el loop
while(contador<11)
{
arreglo1[contador]=contador*contador;
contador++;
}
//imprimo un titulo
printf("\nCuadrados de los 10 primeros numeros");

//ahora imprimo el arreglo usando otro loop
contador=1;
//hago el loop
while(contador<11)
{
printf("\nEl cuadrado de %d", contador);
printf(" es: %d", arreglo1[contador]);
contador++;
}
return;
}



Va el ejemplo, a compilar!



hector27

  • Visitante
Respuesta #12 on: abril 24, 2009, 16:25:56 pm
oops!
JP1, que va al display, deberia ser hembra en la placa, pues tiene tensión, y poner el macho en el display.
Te falta un agujero en RV1 y la bobina puede ser cualquiera, si desguasastes un mather, los ferrites que suelen ir al conector de teclado van bien.
Saludos!
Héctor


Desconectado guss

  • GOLD MEMBER
  • *
    • Mensajes: 1234
    • DT$ 615
  • rokero viejo
Respuesta #11 on: abril 24, 2009, 15:57:24 pm
Recién veo tu mensaje , por suerte mandaste la lista de materiales me ensarte con algunos capa que creía que marcaba .1 y son de 1 mf.
Consegui todo en el taller desarme algunas mother y oras cosillas .
Lo gracioso fue que no tenia leds (lo mas tonto) Jejeje Jejeje Jejeje Jejeje


hector27

  • Visitante
Respuesta #10 on: abril 24, 2009, 08:06:39 am
Continuando con las funciones, ahora veremos el mismo ejemplo anterior, pero modificado para que la funcion retorne un valor a la funcion main. Para ello defino la variable2 en la funcion main, la cual recibe el valor de retorno de la funcion con el loop.
Cuando declaro la funcion, ya no es mas void sino int o lo que correspondiera.
En la funcion del loop al final esta return con lo que quiero enviar.
Las funciones pueden recibir una o mas variables (lo que recibe la funcion se llama argumento), pero devuelven una sola. Mas adelante veremos que podemos retornar mas que una usando punteros y tambien con las estructuras. Por ahora terminamos con las funciones.


/* ----------------------------------------
-            Trabajo Practico Nro 15      -
-              Funciones                  -
-----------------------------------------*/
//incluyo las librerias
#include <stdio.h>
#include <stdlib.h>
int LoopConWhile(int contador);


//comienza la funcion principal
void main(void)
{
//defino la variable1 como entero, y local
int variable1;
//defino la variable2 como entero, y local
int variable2;

//doy indicacion al usuario
printf("\nIngrese un numero del 0 al 9, y luego <enter>");

//leo el numero desde el teclado
variable1=getchar();

//convierto caracter ascii a entero de un digito
variable1=variable1-48;
//corrijo si ingreso‚ un numero mayor que 9
if(variable1>9) variable1=9;
//corrijo si ingreso‚ un numero menor que 0
if(variable1<0) variable1=0;

//llamo a la funcion con un loop
variable2=LoopConWhile(variable1);
printf("\nContador Termina con:%d", variable2);
return;
}

//funcion con loop usando while
int LoopConWhile(int variable1)
{
int contador;
contador=0;
printf("\nLoop usando while:");
//hago el loop
while(contador<variable1)
{
//imprimo la variable contador
printf("\n%d", contador);
contador++;
}

return (contador);
}


hector27

  • Visitante
Respuesta #9 on: abril 23, 2009, 20:48:33 pm
Respecto al TP14, en la funcion en el parentesis de la derecha, antes de las llaves, coloco la o las variable que va a recibir la funcion. En la funcion va como declaracion:

//funcion con loop usando while
void LoopConWhile(int variable1)
{

 y cuando llamo a la funcion le pongo la variable a ingresar:
//llamo a la funcion con un loop
LoopConWhile(variable1);


Y esto otro no lo habiamos visto:

//convierto caracter ascii a entero de un digito
variable1=variable1-48;
//corrijo si ingrese‚ un numero mayor que 9
if(variable1>9) variable1=9;
//corrijo si ingrese‚ un numero menor que 0
if(variable1<0) variable1=0;


Lo que hago alli es debido a que cuando ingreso por teclado un numero, no ingreso en realidad ese numero, sino su codigo ASCII; para pasar de ASCII a numero (para los numeros), basta con restarle 48 al codigo ascii. Los if posteriores los puse por si ingresan otra cosa que no sea los numeros, asi si el codigo de la letra es mayor que el codigo del 9 pongo 9, y si el codigo es menor que el que le corresponde al cero va cero.
(ojo el programa tenia un error en esta parte, esta bien ahora)
Saludos!
Héctor


hector27

  • Visitante
Respuesta #8 on: abril 23, 2009, 20:38:53 pm
hoja de datos del display

Si tienen algun otro, antes de comprar avisen.



hector27

  • Visitante
Respuesta #7 on: abril 23, 2009, 20:35:57 pm
Lista de materiales de la placa para pruebas:

Item   Quantity   Reference   Part
______________________________________________

1   5   C1,C4,C9,C17,C18   .1uF
2   5   C5,C6,C7,C8,C16   10uF
3   3   C10,C13,C14   1uF multicapa
4   2   C12,C11   15pF
5   1   C15   .47uF multicapa
6   1   C19   470uF/16V
7   1   C20   470uF/25V
8   9   D1,D2,D3,D4,D5,D6,D7,D8,   LED
      D9
9   1   D10   1N4148
10   2   D12,D11   1N4007
11   1   JP1   tira hembra de 8X2 pines, separados .1 de pulgada
12   3   JP2,JP8,JP10   3 Molex 3 pines, separacion .1 de pulgada
13   2   JP3,JP7    1 molex de 2 pines, separacion .1 de pulgada y 1 tira de 2 pines para jumper
14   1   JP4   conector USBB (como el de las impresoras)
15   1   JP5   BNC para plaqueta (como el de las viejas placas de red)
16   1   JP6   tira de 3 pines para jumper
17   1   JP9   Molex 5 pines
18   1   L1   100uH
19   1   Q1   BC548
20   2   RV1,RV2   5K 1 preset de 10 vueltas de 5K y un pote de 5K o 10K con pines separados .1 de pulgada
21   4   R1,R11,R12,R19   10K
22   1   R2   100
23   9   R3,R4,R5,R6,R7,R8,R9,R10,   1K
      R14
24   1   R13   47K
25   4   R15,R16,R17,R18   4K7
26   4   SW1,SW2,SW3,SW4    pulsadores para plaquetas
27   1   U1   PIC18F2550
28   1   U2   MAX232
29   1   U3   LM7805
30   1   X1   cristal 4MHz


El conector BNC es para cuando usemos los timmers para hacer un frecuencimetro o un contador de pulsos




0x0F

  • Visitante
Respuesta #6 on: abril 23, 2009, 09:50:46 am


permite el ingreso de un caracter ^^
entre 0 y 9..
y nos hace el incremento desde cero hasta el numero ingresado(argumento)
se esta poniendo interesante..aunque tendre que seguir esperando ..por las dudas igual voy siguiendo el curso al pie del cañon..
un saludo boticario ygracias por dedicar tu tiempo para que aprendamos la programacion de pics


Desconectado guss

  • GOLD MEMBER
  • *
    • Mensajes: 1234
    • DT$ 615
  • rokero viejo
Respuesta #5 on: abril 23, 2009, 08:51:48 am
Un par de preguntas de la placa de entrenamiento.
tiene un conector bnc para que?
describí el representador para ver donde lo podemos conseguir.
Si podes tira la lista de materiales porque vi un pote tipo rot.
es para no hacer macanas o modificar la placa según disponibilidades.
Gracias .

 abrazoo abrazoo abrazoo abrazoo abrazoo abrazoo abrazoo


Tags: