Autor Tema: otra vez dando lata  (Leído 2432 veces)

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

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
otra vez dando lata
« en: 25 de Octubre de 2005, 20:37:00 »
Avergonzado

k hay compañeros del foro otra vez mas aki preguntando, esta vez la duda es mas para afinar el uso del picbasic.

BUeno el hecho es k kontrolo un motor a pasos de 4 lineas y lo hago por el puerto C de un 877 la manera mas facil k uso desde hace tiempo es mandar un pulso y apagarlo y lo k hago es lo siguiente

high portc.0
pause 50
low portc.0
pause 50
high portc.1
pause 50
low portc.1
pause 50
high portc.2
pause 50
low portc.2
pause 50
high portc.3
pause 50
low portc.3
pause 50


en general asi lo hago o ahora trate de minimizarlo con un FOR NEXT
y probe con el puerto b y si jalo y es asi el codigo

for i=0 to 3
high i
pause 50
low i
pause 50
next


for i=3 to 0 step -1
high i
pause 50
low i
pause 50
next

para un sentido y para otro, trabaja bien pork la "i " se ajusta al PORTB

trate para cualquier otro puerto y aun no encuentro la sintaxis dentro del for

es decir como escribo por ejemplo para el portc

trate high portc. y no me dejo
tambien portc y tampoco y mas aun el portc[.i] y menos alguna idea o solo lo podre hacer en el portb


no quiero usar el portb pork ahi kiero meter  un teclado matricial por aquello de los pull-ups
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: otra vez dando lata
« Respuesta #1 en: 25 de Octubre de 2005, 22:31:00 »
Hola:

pues efectivamente no puedes hacer eso... pero puedes sustituirlo por un vector y asignar cada secuencia a un indece y luego asignar al puerto el valor coreespondiente del subindice del vector:

Algo asi:

vec var byte [10]
i      var byte

vec[0]=%00000001
vec[1]=%00000010
-
-
-
-

loop:
        for i=0 to 10
             -
             -
             -
             portc=vec[ i ]
             -
             -
             -
        next i  
    goto loop
    end

Algo como eso... o tambien utilizando la funcion LOOKUP....

Suerte....!

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
RE: otra vez dando lata
« Respuesta #2 en: 26 de Octubre de 2005, 08:28:00 »
Que tal amigos!

Mira navaismo la otra forma como lo podrias solucionar es seteando el lazo for next asi, por ejemplo:

for x=8 to 15
high x
pause 50
low x
pause 50
next x

Y asi podras trabajar con el puerto C completo !

Reviza en el manual de pic basic pro, para mayor informacion sino aqui estamos a la orden

Saludos!

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
RE: otra vez dando lata
« Respuesta #3 en: 26 de Octubre de 2005, 15:11:00 »
otra facilisima

i var byte

m var byte

for i=0 to 20
"m=2*i
"no se en caso que se prenda uno consecutivamente

portc=i

pause 50

portc=0

next i
el factor 2*i lo puse pues derepente quieres que vaya prendiendo un led por vez en forma que avanze tipo auto fantastico puestodavia no le meto la mano al motor paso a paso hay una y mil formas claro trata de no usar mucho el low high pues aunque apetesca gasta mucho codigo

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: otra vez dando lata
« Respuesta #4 en: 26 de Octubre de 2005, 15:32:00 »
Hola:

Pues para comandar motores de pasos....

Tambien podrias hacerlo asi

loop:
        PORTC=%01010101
        pause 50
        PORTC=%01010110
        pause 50
        goto loop

Con las secuencias correspondientes y el numero de veces que sea necesario para mover el motor.... yo lo he hecho con vectores como en el ejemplo de arriba para comandar motores PAP....

Lo hacia dentro de un bucle repeat - until... hasta una condicion deseada....

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
RE: otra vez dando lata
« Respuesta #5 en: 26 de Octubre de 2005, 18:40:00 »
hombre pues muchas gracias a todos empezare con la primera sugerencia y pues lamento dar tanta lata pero no se a quien mas recurrir por aqui es muy dificl k programen en picbasic pro, todos me dicen k es para personas tontas como yo k no sabemos el assembler y k picbasic genera mas codigo y cosas asi. Asi que esa el la razon por la cual los molesto mucho espero ya no dar tanta lataAngelito
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: otra vez dando lata
« Respuesta #6 en: 27 de Octubre de 2005, 09:58:00 »
Hola:

Compañero no es que des lata como tu dices... es bueno lo que tu haces... ademas no estas exigiendo las cosas... sino tu pones tus dudas... por ejemplo el codigo primero y pides ayuda en como lo podrias optimizar.... lo que cuenta es que lo intentes por tu cuenta y asi te vas adiestrando... y a los que te han dicho eso del PBP no les hagas caso eso demuestra que tienen envidia..! Sonrisa Gigante

Suerte...!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: otra vez dando lata
« Respuesta #7 en: 27 de Octubre de 2005, 10:14:00 »
Mira amigo, yo aprendi assembler, luego pase al PBP y hice cosas que en assembler no soñaria hacer, ahora estoy con el C.
Cada uno tiene lo suyo, en lo que hace a optimizacion el orden es assembler, C, PBP.
A rapidez de aprendizaje PBP, C, Asm.
A funcionalidad alli es donde todos pueden hacerlo y pesa mucho la capacidad del programador para hacerlo, lo que si es cierto es que PBP es el que mas te ayudara a desarrollar rapido, cuando se trate de comunicaciones y manejo de perifericos el mejor sin duda es C, pero este no tiene funciones del PBP que son muy interesantes, como POT, y otros que no recuerdo.

Nadie es mas que Tu si no lo permites, y eso no tiene nada que ver con tus conocimientos o capacidades, esas dos cosas se desarrollan en la vida, o hay alguno de los criticos que nacio sabiendo o con mas capacidad intelectual que tu??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.