TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Gabriel22 en 27 de Junio de 2009, 12:01:37
-
Mi programa sería este:
Trisb = 0
PORTB = %0000001
Iralaizquierda:
Pause 500
PORTB = SHIFTLEFT(PORTB, 1)
If PORTB = %1000000 then goto iraladerecha
Goto Iralaizquierda
Iraladerecha:
Pause 500
portb = ShiftRight (portb, 1)
If portb = %0000001 then goto iralaizquierda
Goto Iraladerecha
End
El problema es que me da "Bad expression" en los Shift . Las 2 formas de las que lo escribí me dan error.
No se qué hago mal, a ver si me podéis ayudar.
Gracias y su erte en todo!!!!!!
-
Que compilador estás ocupando?. Si es PicBasic Pro el operador para hacer desplazamiento según el manual es:
The '<<' and '>>' operators shift a value left or right, respectively, 0 to 15 times. The newly shifted-in bits are set to 0.
B0 = B0 << 3 ' Shifts B0 left 3 places
W1 = W0 >> 1 ' Shifts W0 right 1 position and places result in W1
-
Hola, gracias por responder :)
Entonces, ¿cómo sería?:
iralaizquierda:
Pause 500
PORTB = PORTB << 6
If PORTB = %1000000 then goto iraladerecha
goto iralaizquierda
¿Sería alo así?
Si me corrigiesen se lo agradecería.
Gracias y suerte!
-
Hola, gracias por responder :)
Entonces, ¿cómo sería?:
iralaizquierda:
Pause 500
PORTB = PORTB << 6
If PORTB = %1000000 then goto iraladerecha
goto iralaizquierda
¿Sería alo así?
Si me corrigiesen se lo agradecería.
Gracias y suerte!
Si esa sería la sintaxis. Aunque en tu primer ejemplo desplazabas 1 bit, en éste estarías desplazando 6:
PORTB = PORTB << 6
Saludos
-
Y si quiero que vaya de 1 en 1 sería:
iralaizquierda:
Pause 500
PORTB = PORTB << 1
If PORTB = %1000000 then goto iraladerecha
goto iralaizquierda
Con eso iría de uno en uno hasta cumplir el IF , ¿no?
Gracias por responder y suerte en todo!
------
P.D: Al compilar me da estos errores;
Error processing COD file
Error[173]........Source file path exceeds 62 characters
¿A qué se debe este error?
Gracias de nuevo!!!!!!
-
Y si quiero que vaya de 1 en 1 sería:
iralaizquierda:
Pause 500
PORTB = PORTB << 1
If PORTB = %1000000 then goto iraladerecha
goto iralaizquierda
Con eso iría de uno en uno hasta cumplir el IF , ¿no?
Así es.
P.D: Al compilar me da estos errores;
Error processing COD file
Error[173]........Source file path exceeds 62 characters
¿A qué se debe este error?
Ese error es porque seguramente la ruta completa para acceder al archivo es muy larga. Lo que deberías hacer es guardar tu archivo en una carpeta lo más próxima al directorio raíz, puede ser C:\PruebasPBP\ o la unidad D:\.., etc. Siempre y cuando la ruta completa no exceda los 62 caracteres.
Saludos
-
Muchísimas gracias Nichita.
Va como la seda :lol: Gracias
Un saludo