Autor Tema: De picaxe a Pic Basic Plus...  (Leído 3664 veces)

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

Desconectado sonicTH

  • PIC10
  • *
  • Mensajes: 21
De picaxe a Pic Basic Plus...
« en: 28 de Abril de 2010, 21:18:13 »
Hola que tal: Espero me puedan ayudar a trasladar este código de PICAXE18X a Basic del picBasic PLUs.  Hace un tiempo comenzé a empaparme del tema, ya que yo sólo he programado en C y quería aprenderlo para enseñarlo precisamente en lugar del costoso sistema picaxe. En fin, me fue imposible seguir aprendiendo y lo que me trae ahora es la necesidad de trasladar este código.

    Del código - Se está utilizando el ADC2 y se guarda en la variable 'tiempo' y en base a una entrada de cuatro bits se selecciona una subrutina. En fin, el código es el siguiente:

Código: [Seleccionar]
symbol cont = b1 ; Variable del ciclo de repeticion
symbol tiempo = b0 ; Tiempo del estado ya sea alto o bajo
symbol t2 = w6
symbol aux = b2
symbol ckp = 0 ; Pin de salida
symbol cmp = 1 ; Pin de salida
symbol t3 = w4
symbol t4 = w5
symbol ref = 0
symbol sync = 1
symbol pip = 2


;************* MENU DE SEÑALES  ******************

inicio: select case pins

case 2
goto ford
case 1
goto chevrolet
case 3
goto sbec2_5
case 128
goto sbec_y_pcm3_0
case 130
goto sbec3_3
case 129
goto sbec3_9
case 131
goto sbec4_0
case 64
goto sbec5_2_y_5_9
case 66
goto pcm2_4
case 65
goto pcm2_5
case 67
goto pcm3_3
case 192
goto GA16DE
case 194
goto GA16DNE
case 193
goto vw1_6
case 195
goto vw1_8
else

endselect
goto inicio



;***********  SEÑAL DE CHRYSLER 2.4L *******************
;*******************************************************



pcm2_4: readadc 2,tiempo
outpins = 2
t2 = tiempo*6
pause t2
aux = 4
gosub reloj
pause t2
high ckp
t2 = tiempo*3
pause t2
low cmp
t2 = tiempo*2
pause t2
gosub reloj
t2 = tiempo*5
pause t2
high cmp
t2 = tiempo*6
pause t2
gosub reloj
pause tiempo
pause tiempo
low cmp
t2 = tiempo*4
pause t2
high ckp
t2 = tiempo*5
pause t2
gosub reloj
pause t2
goto pcm2_4


;**************    SUBRUTINA


reloj: for cont = 1 to aux
high 0
pause tiempo
low 0
pause tiempo
next cont
return



;***********  SEÑAL DE CHRYSLER 2.5L 6 Cilindros *******************
;*******************************************************************


pcm2_5:

outpins = 0
ini: readadc 2,tiempo
toggle cmp
t2 = tiempo * 12
pause t2
t2 = tiempo * 8
for cont = 1 to 4
high ckp
pause tiempo
low ckp
pause t2
next cont
t2 = tiempo * 4
pause t2
goto ini


;***********  SEÑAL DE CHRYSLER 2.5L 4 Cilindros *******************
;*******************************************************************


sbec2_5:

readadc 2,tiempo

outpins = 3
pause tiempo
low ckp
pause tiempo
high ckp
pause tiempo
t3 = tiempo * 3
t4 = tiempo * 4
for cont = 1 to 3
outpins = 0
pause t4
outpins = 3
if cont = 2 then
pause tiempo
low cmp
pause tiempo
high cmp
pause tiempo
goto aqui
else
endif
pause t3
aqui: next cont
outpins = 0
pause t3
goto sbec2_5

;***********  SEÑAL DE CHRYSLER 3.3L 6 Cilindros *******************
;**************************************

sbec3_3: outpins = 2
for cont = 1 to 119
readadc 2,tiempo
pause tiempo
select case t2
case 4,7,10,13,24,27,30,33,48,51,54,57,65,69,72,75,86,89,92,95,107,110,113,116
high ckp
case 5,8,11,14,25,28,31,34,49,52,55,58,66,70,73,76,87,90,93,96,108,111,114,117
low ckp
case 16,20,36,40,44,60,78,82
high cmp
case 2,18,22,38,42,46,62,80,84
low cmp
else
endselect

next cont

goto sbec3_3



;***********  SEÑAL DE NISSAN GA16DE *******************
;*******************************************************************

GA16DE: outpins = 3
ga: for t3 = 1 to 360

readadc 2,tiempo
high ref
pause tiempo
low ref
pause tiempo

select case t3
case 90,180,270,360
high sync
case 92,182,272,8
low sync
else
endselect
next t3
goto GA


;***********  SEÑAL DE NISSAN GA16DNE *******************
;*******************************************************************


GA16DNE: readadc 2,tiempo
t4 = tiempo * 5
t3 = tiempo * 7
high ref
pause t4
low ref
pause tiempo
high ref
pause tiempo
low ref
pause t4
for cont = 1 to 3
high ref
pause t4
low ref
pause t3
next cont
goto GA16DNE


;***********  SEÑAL DE FORD MERCURY 4.6L 8 Cilindros *******************
;*******************************************************************


ford: readadc 2,tiempo
high pip
pause tiempo
low pip
pause tiempo
goto ford


;***********  SEÑAL DE CHEVROLET TBI 5.7L 8 Cilindros *******************
;*******************************************************************



chevrolet: readadc 2,tiempo
t2=tiempo*3
high ref
pause tiempo
low ref
pause t2
goto chevrolet


sbec_y_pcm3_0:
sbec3_9:
sbec4_0:
sbec5_2_y_5_9:
pcm3_3:
vw1_6:
vw1_8:

end

Yo sé que pido mucho de su tiempo, si no es posible pues espero me puedan ir guiando a la par de entenderlo  ;-) ya que el picaxe tambien no es muy mki fuerte. Muchas Gracias.

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: De picaxe a Pic Basic Plus...
« Respuesta #1 en: 29 de Abril de 2010, 14:40:40 »
Hola que tal: Espero me puedan ayudar a trasladar este código de PICAXE18X a Basic del picBasic PLUs.  Hace un tiempo comenzé a empaparme del tema, ya que yo sólo he programado en C y quería aprenderlo para enseñarlo precisamente en lugar del costoso sistema picaxe. En fin, me fue imposible seguir aprendiendo y lo que me trae ahora es la necesidad de trasladar este código.

    Del código - Se está utilizando el ADC2 y se guarda en la variable 'tiempo' y en base a una entrada de cuatro bits se selecciona una subrutina. En fin, el código es el siguiente:

Código: [Seleccionar]
symbol cont = b1 ; Variable del ciclo de repeticion
symbol tiempo = b0 ; Tiempo del estado ya sea alto o bajo
symbol t2 = w6
symbol aux = b2
symbol ckp = 0 ; Pin de salida
symbol cmp = 1 ; Pin de salida
symbol t3 = w4
symbol t4 = w5
symbol ref = 0
symbol sync = 1
symbol pip = 2


;************* MENU DE SEÑALES  ******************

inicio: select case pins

case 2
goto ford
case 1
goto chevrolet
case 3
goto sbec2_5
case 128
goto sbec_y_pcm3_0
case 130
goto sbec3_3
case 129
goto sbec3_9
case 131
goto sbec4_0
case 64
goto sbec5_2_y_5_9
case 66
goto pcm2_4
case 65
goto pcm2_5
case 67
goto pcm3_3
case 192
goto GA16DE
case 194
goto GA16DNE
case 193
goto vw1_6
case 195
goto vw1_8
else

endselect
goto inicio



;***********  SEÑAL DE CHRYSLER 2.4L *******************
;*******************************************************



pcm2_4: readadc 2,tiempo
outpins = 2
t2 = tiempo*6
pause t2
aux = 4
gosub reloj
pause t2
high ckp
t2 = tiempo*3
pause t2
low cmp
t2 = tiempo*2
pause t2
gosub reloj
t2 = tiempo*5
pause t2
high cmp
t2 = tiempo*6
pause t2
gosub reloj
pause tiempo
pause tiempo
low cmp
t2 = tiempo*4
pause t2
high ckp
t2 = tiempo*5
pause t2
gosub reloj
pause t2
goto pcm2_4


;**************    SUBRUTINA


reloj: for cont = 1 to aux
high 0
pause tiempo
low 0
pause tiempo
next cont
return



;***********  SEÑAL DE CHRYSLER 2.5L 6 Cilindros *******************
;*******************************************************************


pcm2_5:

outpins = 0
ini: readadc 2,tiempo
toggle cmp
t2 = tiempo * 12
pause t2
t2 = tiempo * 8
for cont = 1 to 4
high ckp
pause tiempo
low ckp
pause t2
next cont
t2 = tiempo * 4
pause t2
goto ini


;***********  SEÑAL DE CHRYSLER 2.5L 4 Cilindros *******************
;*******************************************************************


sbec2_5:

readadc 2,tiempo

outpins = 3
pause tiempo
low ckp
pause tiempo
high ckp
pause tiempo
t3 = tiempo * 3
t4 = tiempo * 4
for cont = 1 to 3
outpins = 0
pause t4
outpins = 3
if cont = 2 then
pause tiempo
low cmp
pause tiempo
high cmp
pause tiempo
goto aqui
else
endif
pause t3
aqui: next cont
outpins = 0
pause t3
goto sbec2_5

;***********  SEÑAL DE CHRYSLER 3.3L 6 Cilindros *******************
;**************************************

sbec3_3: outpins = 2
for cont = 1 to 119
readadc 2,tiempo
pause tiempo
select case t2
case 4,7,10,13,24,27,30,33,48,51,54,57,65,69,72,75,86,89,92,95,107,110,113,116
high ckp
case 5,8,11,14,25,28,31,34,49,52,55,58,66,70,73,76,87,90,93,96,108,111,114,117
low ckp
case 16,20,36,40,44,60,78,82
high cmp
case 2,18,22,38,42,46,62,80,84
low cmp
else
endselect

next cont

goto sbec3_3



;***********  SEÑAL DE NISSAN GA16DE *******************
;*******************************************************************

GA16DE: outpins = 3
ga: for t3 = 1 to 360

readadc 2,tiempo
high ref
pause tiempo
low ref
pause tiempo

select case t3
case 90,180,270,360
high sync
case 92,182,272,8
low sync
else
endselect
next t3
goto GA


;***********  SEÑAL DE NISSAN GA16DNE *******************
;*******************************************************************


GA16DNE: readadc 2,tiempo
t4 = tiempo * 5
t3 = tiempo * 7
high ref
pause t4
low ref
pause tiempo
high ref
pause tiempo
low ref
pause t4
for cont = 1 to 3
high ref
pause t4
low ref
pause t3
next cont
goto GA16DNE


;***********  SEÑAL DE FORD MERCURY 4.6L 8 Cilindros *******************
;*******************************************************************


ford: readadc 2,tiempo
high pip
pause tiempo
low pip
pause tiempo
goto ford


;***********  SEÑAL DE CHEVROLET TBI 5.7L 8 Cilindros *******************
;*******************************************************************



chevrolet: readadc 2,tiempo
t2=tiempo*3
high ref
pause tiempo
low ref
pause t2
goto chevrolet


sbec_y_pcm3_0:
sbec3_9:
sbec4_0:
sbec5_2_y_5_9:
pcm3_3:
vw1_6:
vw1_8:

end

Yo sé que pido mucho de su tiempo, si no es posible pues espero me puedan ir guiando a la par de entenderlo  ;-) ya que el picaxe tambien no es muy mki fuerte. Muchas Gracias.



Pues mira que alguien te lo pase esta muy c…….     :mrgreen: :mrgreen: ;    para tu suerte por lo que veo así de pasada el mentado picaxe  es muy parecido al pic Basic, así que con manual en mano de ambos compiladores no deberías tener mayor problema.  :-/ :-/

Desconectado torres.electronico

  • PIC10
  • *
  • Mensajes: 7
Re: De picaxe a Pic Basic Plus...
« Respuesta #2 en: 30 de Noviembre de 2010, 22:11:13 »
Hola, de seguro es tarde, pero igualmente hago el aporte por que quizas le sirva a otro...
En este caso particular, queda "casi" exactamente igual solo que cambia las asiganciones en el comienzo del programa y tienes que colocar los fuses y el micro a implementar...
Por ejemplo, en ves de implementar el comando SYMBOL, implementa VAR... te muestro un ejemplo sencillo
En picaxe se escribe:
                symbol cont = b1      
      symbol tiempo = b0      
      symbol t2 = w6
      symbol aux = b2
      symbol ckp = 0         
      symbol cmp = 1         
      symbol t3 = w4
      symbol t4 = w5
      symbol ref = 0
      symbol sync = 1
      symbol pip = 2


En PBP se escribe:
    
                 cont VAR BYTE      
       tiempo VAR BYTE      
       t2 VAR WORD
       aux VAR BYTE
       ckp VAR portX.X ; esto depende del puerto que quieras usar         
       cmp VAR portX.X         
       t3 VAR BYTE
       t4 VAR WORD
       ref VAR portX.X
       sync VAR portX.X
       pip = 2


Te hago una consulta... me podrias dar el link de la pagina donde conseguistes esa rutina para el picaxe18x? me harias ese favor?justo estoy trabajando en un proyecto similar para un foro de mecanica