TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: xootraoox en 27 de Enero de 2004, 00:17:00
-
MMMM HAN VISTO ANTES UN NOVATILLO TAN DURO DE APRENDER ANTES......
BUENO RESULTA QUE LEYENDO Y EXPERIMENTANDO POR AQUI Y POR ALLA HE LOGRADO HACER MIS PROPIOS PROGRAMAS PERO LO QUE PASA ES QUE CUANDO QUIERO IR MAS ALLA DE HACER UNA SECUENCIA CON LEDS NO ME DA LA CABEZA NO PUEDO ENTENDER CON CLARIDAD
MIREN LO QUE PRETENDO HACER ES GIRAR UN MOTOR PASO A PASO EN UN SENTIDO POR 5 SEGUNDOS E INVERTIRLO POR 5 SEGUNDOS Y ASI SUCESIVAMENTE PERO NO HAYO COMO
LO MAS APROXIMADO QUE HE ESTADO ES REALIZANDO ESTO
I VAR BYTE
PASOS VAR PORTB
TRISB = %00000000
LOOP: PULSO = 1
Pause 50
For i = 1 to 3
PULSO = PULSO << 1
Pause 50
Next i
Goto loop
End
lo cual me realiza una secuencia de este tipo
0001
0010
0100
1000
hasta hay voy bien.... lo giro en un sentido y por lo que me di cuenta en la linea en donde dice PULSO = PULSO << 1 LO QUE HACE ES DESPLAZAR UN BIT A LA IZQUIERDA y prove a cambiar los simbolos "<<" por ">>" y bien el bit se desplaza a la derecha osea
que con repetir el codigo dos veces ( cambiando los simbolos puedo definir la direccion del giro pero desde aqui comienza mi problema.....
como hago para que mi primera secuensia se repita unas 1000 veces y luego salte a la secuencia dos y asi sucesivamente he intentado de una y mil formas y no he dado con la correcta
si algien es tan amable y me hecha una mano
aaaaahhh!!!! otra cosa si es posible que me explicasen con claridad lo que realiza cada linea de este programa no como el tipico manual por que me los heleido hasta en chino y no los entiendo aqui mismo lo adjunto http://xootraoox.webcindario.com/pap.txt con los comentarios como los entiendo yo y a la vez los que no entiendo.
bueno creo que hasta aqui es suficiente dejo lo demas para otra ocasion para no latiar tanto tanbien dejo mi direccion del messenger gigio224@hotmail.com por si alguien me quisiera agregar para molestarlo un poco con respecto a estos bichitos programables
desde ya muy agradecido aunque solo lean el asunto de este post
buena suerte y gracias a todos los integrantes del foro todopic que sin duda es el mejor de la red.....
-
Aquí tienes algo en ensamblador: http://miarroba.com/foros/ver.php?temaid=1118790&foroid=6510
Un saludo
-
No lo puedo probar ahora mismo porque no estoy en casa, pero imagino que con estos cambios podrás conseguir lo que quieres:
I VAR BYTE
PASOS VAR PORTB
TRISB = %00000000
for j=1 to 1000
PULSO = 1
Pause 50
For i = 1 to 3
PULSO = PULSO << 1
Pause 50
Next i
next j
End
-
que onda xootraoox
en el pbp plus hay un comando especifico para esto, solo siempre recuerda leer los tiempos de activacion para tu servo, ya que cambian:
DEVICE 16F628
DIM Pos as WORD
SYMBOL Pin = PORTA.3 "pin de control de servo
CMCON = 7
CLS "por si usas LCD
Pos = 1500
PORTA = 0
TRISA = %00000111 "pines usados para control del servo
"porta.0=isqu.
"porta.1=centrar
"porta.2=derecha
Main:
IF PORTA.0 = 0 Then IF Pos < 3000 Then Pos = Pos + 1
IF PORTA.1 = 0 Then Pos = 1500
IF PORTA.2 = 0 Then IF Pos > 0 Then Pos = Pos - 1
SERVO Pin , Pos
DELAYMS 5
PRINT AT 1 , 1 , "Position=" , @Pos , " " "para LCD
GOTO Main
Espero y sea lo que buscabas
Saludos
Una Razon ams para migrar a PBP PLUS!!
-
Que tal Xootraoox. Mira lo que te propone nocturno66, es la mejor opción, ya que tu necesitas girar un motor de pasos. Si nocturno66 me lo permite voy comentar y complementar el código para lo que tú necesitas.
I VAR BYTE
J VAR WORD
PASOS VAR PORTB
TRISB = %00000000 " Esta no es una instrucción, es una
"palabra de configuracion en la que le
"le dices al micro que el puerto B en
"su totalidad trabajará como salida.
MAIN:
FOR J =1 TO 1000 "Aqui generas un ciclo para que el
"la rutina se ejecute mil veces
PASOS = 1 "Aquí ejecutas el primer pulso de la
"secuencia. Enciendes el primer bit
"del puerto B.
PAUSE 50 "Realizas un delay de 50 ms, que será
"la duración del pulso en estado alto.
FOR I = 1 TO 3 "Aqui generas un ciclo para recorrer el
"el bit hacia la izquierda(3 veces).
PASOS = PASOS << 1 "Se recorre el bit del puerto B
"hacia la izquierda.
PAUSE 50 "Delay explicado anteriormente.
NEXT I "Aqui termina el corrimiento a la
"izquierda del bit del puerto B. Aqui
"termina una secuencia de pasos para
"tu motor.
NEXT J "Aqui termina la ejecucion de 1000
"secuencias para corrimiento de bit
"a la izquierda, que produce el giro
"en un sentido del motor.
FOR J = 1 TO 1000 "Iniciamos el ciclo de 1000 secuencias
"en sentido contrario del giro y
"corrimiento.
PASOS = 8 "Ahora iniciamos el bit en donde la se
"secuencia anterior termina
PAUSE 50 "delay anteriormente explicado.
FOR I = 1 TO 3 "Iniciamos corrimiento en sentido
"contrario.
PASOS = PASOS >> 1 "Realizamos corrimiento del bit
"hacia la derecha (en sentido opuesto!!)
PAUSE 50 "Delay explicado anteriormente
NEXT I "Termina primera secuencia de
"corrimiento a la derecha.
NEXT J "Terminan las 1000 secuencias de
"corrimiento a la derecha. Es decir en
"sentido opuesto.
GOTO MAIN "Repite por siempre los dos giros.
Como pudiste observar la realidad es que es bien sencillo, solo se necesita pensar un poco y practicar con la lógica. Es decir paso a paso.
La ventaja que tienen los lenguajes de alto nivel es esto. Se pueden realizar códigos muy rápidamente.
Bueno espero que te sirva este pequeño código para tu proyecto.
Saludos, y no te desesperes. Recuerda darle tiempo al tiempo.
-
UFFF ESTE FORO SI QUE VALE TODOS SUS USUARIOS EN ORO.....
NO LO DIGO POR AGRADECIMIENTO SINO POR QUE LA VERDAD QUE ES EL MEJOR SOBRE EL TEMA APARTE NO HAY NADIE QUE HAGA LAS COSAS CON ANIMO DE LUCRO
BUENO PRIMERO LES AGRADESCO QUE ME HAYAN RESUELTO MI DUDA CON ESTA RAPIDES.... LA VERDAD YO ANDUVE MUY CERCA SEGUN EL EJEMPLO DADO POR nocturno66 Y elreypic YO HABIA TRATADO DE FORMAS SIMILARES PERO NO HABIA FUNCADO LA VERDAD ESTOY AGRADECIDO POR HABERME AYUDADO A DAR UN PASO MAS LES JURO QUE CUANDO YO SEA UN ENTENDIDO EN EL TEMA SERE UNO DE LOS PRIMEROS EN COMPORTARME COMO USTEDES EN ESTE FORO RESOLVIENDO DUDAD DE OTROS COMO YO GRACIAS Y SIGAN ASI POR QUE SOMOS POCOS LOS QUE QUEDAMOS QUE NOS GUSTA ENSEÑAR LO QUE SABEMOS SIN NINGUN INTERES
UN ABRAZO A TODOS
-
Ha sido un placer
-
Entre todos siempre podremos superar los problemas,, y aprovecho para agradecer a todos los de este foro que me han ayudado y motivado a ser mejor

Saludos panas
Baygon
Una razon ams para migrar a PBP PLUS!!
-
Me alegro muuuuuccho que te hayas aclarado, "cabeza dura", jejejeje.... La verdad es que has dado un paso muy grande, eh, porque de la secuencia de leds a mover un motor paso a paso tiene su miga... como decimos en España. Además ya has visto que gente tan genial hay en este foro, siempre dispuestos para echar manitas.
Animo, y dime, ¿Qué es lo siguiente que vas a hacer? ahora que empiezas a pilotar en PBP ya nada tiene misterios para ti, no?
Besotes
Elena
-
JEJEJE GRACIAS A TODOS LA VERDAD ESTE SI QUE ES UN GRAN FORO BUENO LES COMENTO EN ESTE MOMENTO ESTOY EN FACE DE PRUEBAS LA VERDAD ES QUE PBP ES MUY AMIGABLE POR LO MENOS CON DOS DIAS DE LECTURA YA PUDE HACER MIS PROPIAS LINEAS CON LO QUE EL ASM TODAVIA NO LOGRO ( POR MI CABEZA DURA) COMO LES DECIA HE ESTADO PROBANDO SUS LINEAS Y EXPERIMENTANDO A TAL PUNTO QUE EN UNA HORA MAS SALGO A COMPRAR UN LCD Y OTRAS COSITAS Y SOLO PARA VER COMO ES QUE FUNCA LUEGO PRETENDO VER COMO FUNCIONAN LOS ASUNTOS DE COMUNICACION CON EL EXTERIOR DE EL MISMO (RS232 - I2C - USART, ETC... )BUENO ESPERO NO TENER QUE MOLESTAR EN ESTE PROCESO PERO SI ES ASI SE QUE TENGO UN LUGAR DONDE ACLARAR MIS DUDAS Y POR ESO AGRADESCO A TODOS LOS COMPONENTES DE ESTE GRAN PROYECTO (ESTE FORO)
BUENO NO LATEO MAS Y ME LAS GUARDO PARA DESPUES DESPIDIENDOME CON UN GRAN ABRAZO PARA TODOS