Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?
02/12/2011 #1521



Gox


tienes el archivo de proteus???

como lo estas probando?

Dark
no te entendi muy bien

pero mira este texto de la ayuda del microcode...
The first array location is element 0. In the fish array defined above, the elements are numbered fish[0] to fish[7] yielding 8 elements in total. Because of the way arrays are allocated in memory, there are size limits for each type:
02/12/2011 #1522
Moderador

Avatar de D@rkbytes

lubeck dijo: Ver Mensaje

Gox


tienes el archivo de proteus???

como lo estas probando?

Dark
no te entendi muy bien

pero mira este texto de la ayuda del microcode...
Ya viste como tengo razón, el primer elemento es 0 y el ultimo 7 ocupa 8 lugares en total.
02/12/2011 #1523


lo que pasa es lo siguiente, en sentido horario esta a la perfeccion y cuando completa una vuelta lo repite sin ningun problema, pero cuando selecciono el sentido antihorario, digamos que hace una vuelta completa y despues energiza 3 bobinas y se para y ya no responde.
Adjunto el codigo que utilizo y mi archivo de proteus.
PD: deje parte de mi codigo, para no hacerme bolas (todavia no le entiendo bien ), tome parte final de tu codigo y lo anexe al mio.
Archivos Adjuntos
Tipo de Archivo: rar com.rar (11,6 KB (Kilobytes), 52 visitas)
02/12/2011 #1524


Darkbytes dijo: Ver Mensaje
Ya viste como tengo razón, el primer elemento es 0 y el ultimo 7 ocupa 8 lugares en total.
Por eso, eso es lo que estoy tratando de decir....

que de a[0] a a[3] deber ser a var word[4]

o que no estoy entendiendo...

Gox
deja ver y mañana te digo
02/12/2011 #1525


lubeck dijo: Ver Mensaje
Por eso, eso es lo que estoy tratando de decir....

que de a[0] a a[3] deber ser a var word[4]

o que no estoy entendiendo...

Gox
deja ver y mañana te digo
Gracias lubeck
02/12/2011 #1526
Moderador

Avatar de D@rkbytes

Traducción de la ayuda de PBP

La primera ubicación dentro del arreglo es el elemento cero. En el arreglo fish anterior los elementos
están numerados fish (0) a fish (7) conteniendo 8 elementos en total .
Dada la forma en que los arreglos están localizados en memoria hay límites de tamaño para cada tipo.
Ósea que lubeck tu dices colocar un Array[4] por que se usaran 4 valores
Pero para que declarar a VAR BYTE[4] si a VAR BYTE[3] ya contiene 4 elementos.
02/12/2011 #1527


mmm.. creo que estoy dormido ya, porque no entiendo a que te refieres Dark...
mañana le doy una leida completa.... para ver en que la estoy errando...

buenas noche a ambos!!
02/12/2011 #1528


andresjavierl dijo: Ver Mensaje
Hola a todos, tengo un problema y no se como solucionarlo, leo el estado de un potenciometro con la palabra "POT", y lo muestro en un LCD desde 0 hasta 255, ahora, como hago para cambiar la escala, para cuando este en 0 muestre 88, y cuando este en 255 muestre 108. Esto no puedo resolverlo con una regla de tres directa ya que no es lineal. Como se podra resolver?, desde ya muchas grasias.
En este momento solo se me ocurre 2 opciones....una que hagas una tabla con la correspondencia de cada valor entre POT y el valor que quieres que represente y otra es que encuentres una expresión matemática que refleje los valores que toma el POT.......ya sabes que la regla de 3 simple no se puede aplicar pero la matemática no se termina ahí. Habría que muestriar(ya que con 2 valores de 256 posibles solo se puede adivinar los valores intermedios) y buscar una expresión que represente dichos valores lo mas exactos posible según tu proyecto tolere/requieras.

Ric.
02/12/2011 #1529


Pero para que declarar a VAR BYTE[4] si a VAR BYTE[3] ya contiene 4 elementos.
me parece que no Dark...

mira el archivo adjunto a este link...
matrix de leds con arrays pic basic pro

igual voy a hacer una prueba, pero a mi me habia omitido la ultima variable, y alguien en el tema ya lo menciono... y como lo he dimensionando siempre asi y nunca he tenido problemas pues no lo he verificado....
02/12/2011 #1530


GOX

lo de los array no tiene ningun chiste....

tienes un numero de variables digamos...

jorge=100
lubeck=200
pedro=40
kilo=300
son cuatro variables con cuatro diferentes valores.... lo mismo puedes hacer con un array...
a[0]=100
a[1]=200
a[2]=40
a[3]=300
tambien son cuatro diferntes variables pero la diferencia es que se llaman igual y tienen un "indice" el cual puedes manejar con una constante u otra variable....

digamos
a[1]=1
es lo mismo que si cuando b=1...
a[b]=1

y mira este codigo... en teoria conserva la posicion del motor...
Archivos Adjuntos
Tipo de Archivo: rar com.rar (16,9 KB (Kilobytes), 63 visitas)
02/12/2011 #1531


lubeck dijo: Ver Mensaje
GOX

lo de los array no tiene ningun chiste....

tienes un numero de variables digamos...

jorge=100
lubeck=200
pedro=40
kilo=300
son cuatro variables con cuatro diferentes valores.... lo mismo puedes hacer con un array...
a[0]=100
a[1]=200
a[2]=40
a[3]=300
tambien son cuatro diferntes variables pero la diferencia es que se llaman igual y tienen un "indice" el cual puedes manejar con una constante u otra variable....

digamos
a[1]=1
es lo mismo que si cuando b=1...
a[b]=1

y mira este codigo... en teoria conserva la posicion del motor...
Hola lubeck, muchas gracias de verdad estoy agradecido y a la vez un poco avergonzado , el codigo que me proporcionaste, va a la perfeccion.
Hay partes que no le entiendo, pero tendre que ponerme a leer y estudiar para entender bien este pequeño universo de los microcontroladores .
Mil gracias, tendras alguna pagina o informacion para ponerme a estudiar y leer .
salu2
02/12/2011 #1532

Avatar de atricio

andresjavierl dijo: Ver Mensaje
Hola a todos, tengo un problema y no se como solucionarlo, leo el estado de un potenciometro con la palabra "POT", y lo muestro en un LCD desde 0 hasta 255, ahora, como hago para cambiar la escala, para cuando este en 0 muestre 88, y cuando este en 255 muestre 108. Esto no puedo resolverlo con una regla de tres directa ya que no es lineal. Como se podra resolver?, desde ya muchas grasias.
hola mi amigo ojala pueda ayudarte yo hice lago parecido

si tu dices que quieres hacer esto solo deberias hacer esto con una simple regla de 3 no se si usaste eso me avisas como vas con esto asi podemos resolverlo o mira antes yo postie un programa que usaba 3 potenciometros con el ADC y escale los valores para que me los indique en un LCD 16x2
02/12/2011 #1533
Moderador

Avatar de D@rkbytes

lubeck dijo: Ver Mensaje
me parece que no Dark...

mira el archivo adjunto a este link...
matrix de leds con arrays pic basic pro

igual voy a hacer una prueba, pero a mi me habia omitido la ultima variable, y alguien en el tema ya lo menciono... y como lo he dimensionando siempre asi y nunca he tenido problemas pues no lo he verificado....
OK. Saludos
Bien, pues me puse a jugar con el manejo de Arrays y encontre algo interesante.
Si creo un Array de 3 Elementos PEj. a VAR BYTE[3]
se supone me deberia cargar desde el 0 hasta el 3 y lo hace pero al modo que experimente.
Los cargo como:
a[0]=1
a[1]=2
a[2]=3
a[3]=4

Si los mando llamar independientemente, si me muestra el valor de a[0] hasta a[3]
En cambio si los mando llamar por medio de un FOR x=0 TO 3
Si me omite el valor de a[3]
Entonces si declaro a VAR BYTE[4] con el FOR... NEXT si me da el valor de a[3]
Ahora lo que no entiendo es porque si me da el valor de a[3] si lo llamo independientemente.
Hice la misma prueba en VB6 y ahí si me muestra el valor de a[3] con un FOR x=0 TO 3
Así que puede ser debido a que VB6 es de 32Bits aunque me parece ilogico
porque solo se esta trabajando con un Array de 4 valores.
Bien, así que entonces queda claro que para que no se omita el valor del ultimo elemento
se tiene que declarar uno mas.
Pero ya me quedo esa duda de por que un llamado independientemente x=a[3] si funciona.
Declarando solo a VAR BYTE[3] y con un FOR... NEXT no funciona.....
No hice la prueba con valores WORD que pudiera ser otra causa.
Gracias lubeck y saludos a todos.
Aqui les dejo el resultado del experimento. BYE4NOW
Archivos Adjuntos
Tipo de Archivo: rar Experimento Arrays.rar (22,2 KB (Kilobytes), 76 visitas)
04/12/2011 #1534

Avatar de atricio

esto de los arreglos lo veo muy importante me ha dado una idea como para seguir con mi seguidor de linea
ademas amigos alguien m puede explicar una conexion serie por 485 lo quiero hacer con labview y 2 esclavos mas y si no es mucho pedir pueden explicarme como son las iterrupciones en este compilador no la entiendo bien
04/12/2011 #1535


puede explicar una conexion serie por 485 lo quiero hacer con labview y 2 esclavos mas
a mi también me gustaría aprender esa comunicacion.... no he visto ninun codigo en PBP aunque debo aclarar que no lo he buscado mucho...

y si no es mucho pedir pueden explicarme como son las iterrupciones en este compilador no la entiendo bien
las interrupciones tampoco son muy complicadas, lo que hay que visualizar es que es lo que se llama como una bandera o un Flag, osea un 1 o un 0, y que esa variable siempre esta en un registro del pic y se cambia por Hardware y generalmente la modifica un modulo del pic (como el USART, Timer, I2c, etc) o los puertos IO....

como ya dije se cambia por Hardware, el picbasic lo detecta y llama una rutina a la hora que se detecta...

la instruccion que pone en "alerta" es On interrupt goto MiInt, donde MiInt es la subrrutina...

En la subrrutina se de deshabilita esa "alerta" para no crear conflicto o que se vuelva a ejecutar mientras la esta realizando , se regresa de donde fue llamada con las sig. instrucciones y se habilita la "Alerta"...

DISABLE
MiInt:
led = 1
RESUME
ENABLE

cada pic tiene su forma de activar esas interrupciones....
generalmente hay que ver el Datashit del pic en cuestion para configurar los registros involucrados dependiendo del modulo, el IntCON, y el Option_reg...

espero no haber olvidado mucho
04/12/2011 #1536

Avatar de atricio

muchas gracias pero no tendras por ahi un ejemplito para poder entenderte mejor la verdad no te entiendo muy bien que se diga disculpandome por la ignorancia
04/12/2011 #1537


un ejemplito para poder entenderte mejor la verdad no te entiendo muy bien que se diga disculpandome por la ignorancia
ok... el tema es que no hay un ejemplo que siempre te funcione... porque cada modulo es diferente, es a base de configurar registros...

o lo que es lo mismo de que interrupcion quieres un ejemplo es diferente el de los puertos IO al del USART o al del I2c etc etc...

por otro lado ya investigue un poco del 485, y a lo que entiendo es lo mismo que el serial la diferencia es que hay que activar un puerto para habilitar la transimision del max485, si es half-duplex... voy intentar hacer un ejemplo pronto y lo subo, si alguien tiene uno ya echo pues que mejor...
04/12/2011 #1538


a ver que opinan....

hice este ejemplo del RS-485... todos los pics tiene el mismo codigo (para no batallar) segun yo la unica diferencia de enviarlo como i2c, spi, o por serial entre el 485 y el 232, es que se tiene que habilitar el envio con un puerto....

Va el ejemplo con el Serin....
Archivos Adjuntos
Tipo de Archivo: rar RS-485.rar (10,3 KB (Kilobytes), 100 visitas)
06/12/2011 #1539


Aca un video-ejemplo de PC 2 RS-485

06/12/2011 #1540

Avatar de arturouc

Muy bien lubeck!!! el próximo año construire una red 485 con PLC's y espero
poder poner un micro en la red con tu ejemplo...

P.D. podrías pasarme tu fondo de escritorio...
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.