Autor Tema: Pasaje a Lenguaje C  (Leído 2015 veces)

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

Desconectado hernanfire

  • PIC10
  • *
  • Mensajes: 32
Pasaje a Lenguaje C
« en: 28 de Noviembre de 2008, 11:24:35 »
Hola a todos! :lol:, queria saber si es complicado pasar un codigo escrito en Mikrobasic 5.0.0.0  a C/assembler o si conocen algun
programita, ya que conozco algo de CCS o assembler!!! (Nunca alcanza lo que uno sabe....siempre mas...)
Dejo el codigo por si alguien le interesa (seguro gente no debe faltar :P), es para manejar 2 servos a
partir de un acelerometro ( a pesar de que yo solo quiera prender un LED!!! :D y hacer un pitido!!! )
Por supuesto le doy las gracias a Julio Montegut y a su pagina http://www.jvmbots.com)

  1. program Acelerometro 
   2. 
   3. 'Programa acelerometro ********************************************************* 
   4. 'Este codigo recorre los 180º de rango del servo cuando desplazamos en X e Y el 
   5. 'acelerometro MMA6262Q, la version es de Mikrobasic 5.0.0.0 
   6. ' 
   7. 'Creado y verificado por: Julio Montagut 
   8. 'Web: http://www.jvmbots.com 
   9. ' 
  10. 'Valores recogidos en modo analogico (8 bits): 
  11. '    Horizontal:  76.77 
  12. '    Minimo:      39 
  13. '    Maximo:      115 
  14. ' 
  15. '-HARDWARE: 
  16. '    MCU: PIC 18F452 
  17. '    Cristal: 4 Mhz 
  18. '    1- Servo Futaba S3003 conectado a PORTB.0 
  19. '    1- Servo Futaba S3003 conectado a PORTB.1 
  20. '    - Canal X del MMA6262Q conectado a PORTA.0 
  21. '    - Canal Y del MMA6262Q conectado a PORTA.1 
  22. '******************************************************************************* 
  23. 
  24. 
  25. dim VAD1, VAD2 as word 
  26. dim AD1, AD2 as byte 
  27. dim Tmp1, Tmp2 as byte 
  28. dim Tmp1A, Tmp2A as byte 
  29. dim aa as byte 
  30. 
  31. 'Sub-rutina para generar pulsos a los servos 0-255 
  32. Sub procedure Pulsout(dim byref Puerto as byte,dim Pin as byte,dim Pos as Byte) 
  33.  Setbit(Puerto,Pin) 
  34.  Delay_Cyc(Pos) 
  35.  Clearbit(Puerto,Pin) 
  36. End sub 
  37. 
  38. 
  39. main: 
  40.  ADCON1 = $80                   ' Configuracion analogica y Vref 
  41.  TRISA  = $FF                   ' PORTA como entradas 
  42.  TRISB=0                        ' PORTB como salidas 
  43. 
  44.  'Inicializacion 
  45.  PORTB=0 
  46.  Tmp1=127 
  47.  Tmp1A=127 
  48.  Tmp2=127 
  49.  Tmp2A=127 
  50. 
  51.  while TRUE 
  52.    'Lectura analogica (10 bits) 
  53.    VAD1 = Adc_Read(0) 
  54.    VAD2 = Adc_Read(1) 
  55. 
  56.    'Conversion de 10 a 8 Bytes del conversor AD 
  57.    AD1= byte(VAD1 >>2) 
  58.    AD2= byte(VAD2 >>2) 
  59. 
  60.    'Coeficiente de escala para el recorrido completo 
  61.    Tmp1=((AD1*2)-20) 
  62.    Tmp2=((AD2*2)-20) 
  63. 
  64.    'Corrector del Margen de vibracion 
  65.    If (Tmp1<(Tmp1A-2)) or (Tmp1>(Tmp1A+2)) then Tmp1A = Tmp1 end if 
  66.    If (Tmp2<(Tmp2A-2)) or (Tmp2>(Tmp2A+2)) then Tmp2A = Tmp2 end if 
  67. 
  68.    'Envio a los servos 
  69.    For aa=0 to 2 
  70.      Pulsout(PORTB,0,Tmp1A)      'Enviamos el tren de pulsos para el servo1 
  71.      Pulsout(PORTB,1,Tmp2A)      'Enviamos el tren de pulsos para el servo2 
  72.      Delay_ms(20) 
  73.    Next aa 
  74. 
  75.  wend 
  76. end.
Desde ya gracias a todos!

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Pasaje a Lenguaje C
« Respuesta #1 en: 28 de Noviembre de 2008, 11:37:36 »
No conozco ningun programa q traduzca de un lenguaje a otro, pero conozco a varios programadores jeje.
La verdad q dudo q exista dicho programa, cada lenguaje tiene sus directivas, sus funciones, etc... es como querer traducir de ingles a español, no podes traducir palabra a palabra, hay q conocer bien la sintaxis, semantica y todas esas cosas feas q no me gustaban en la escuela jajaja.
Te recomiendo q te pongas a leer el codigo y te hagas un diagramita de flujo o algo asi, y con paciencia te sentas a pasarlo al lenguaje q mas te guste (en tu caso C).
Saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Pasaje a Lenguaje C
« Respuesta #2 en: 29 de Noviembre de 2008, 13:35:55 »
Hola.

Lo que importa de un programa es el diagrama de flujo o la maquina de estados con el cual esta hecho -tal y como lo mensiona gera-. Si tienes un programa ya hecho, habria que ver que logica tiene y de ahi, para traducirlo es facil ... siempre y cuando conozcas el otro compilador.

Saludos
El papel lo aguanta todo