TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Albatros en 02 de Febrero de 2020, 07:40:05

Título: Pasar de Bas a Hex
Publicado por: Albatros en 02 de Febrero de 2020, 07:40:05
Hola amigos,ante todo decir que soy novato en estos temas.Bien tengo un programador K150 al cual quiero grabar un archivo Hex en un picaxe-08m pero no se como pasarlo,que software utilizar.Adjunto el archivo al cual me refiero por si alguno me puede hacer el favor de convertirlo.
          Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: Fer_TACA en 02 de Febrero de 2020, 10:44:42
Debes se compilar tu archivo. bas para obtener el fichero .hex que es el fichero que necesitas para grabar el Pic con el programador K150.
No dices nada del software que tienes para generar el .bas, ¿Protón, Pic básico, etc?

F.
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 02 de Febrero de 2020, 14:14:35
Hola Fer_taca quizas me estoy liando que como digo estoy pez en esto,tengo en mente hacer un roger beep para una emisora civil vi este esquema que lleva un picaxe,creo que la solucion seria utilizar dicho software de picaxe y grabarlo tal cual esta el bas,tu me diras si es lo mas conveniente,creo que el K150 con su software original no me vale para grabar el picaxe.Si me puedes aconsejas que programador para dicho pic puedo adquirir pues de esto ni idea,en cambio hacer el pcb de dicho esquema si se me da mejor.
  P.D aunque estoy encontre que dicho picaxe tiene un equivalente que seria PIC12F683,entonces di un paso mas pues de este pic tengo varios en casa.Ahora lo de compilar para pasarlo a hex ni idea.Si me dices de alguno me pongo manos a la obra.
          Muchas gracias
Título: Re:Pasar de Bas a Hex
Publicado por: Fer_TACA en 02 de Febrero de 2020, 15:36:31
El  fichero .bas nunca puedes pasarlo al micro, sea cual sea picaexe o el 12F683, ni cualquier otro mi ro.
El fichero .bas se tiene que compilar para obtener el .hex.
No se con que programa se ha creado el .bas, puede se Protón, Pic basic u otro. Se necesita ejecutar ese programa y desde allí compilarlo.
Luego ya se podrá pasar al Pic.
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 02 de Febrero de 2020, 16:21:15
Muy dificil me lo estas poniendo,pues no tengo ni idea con que software se creo el bas,simplemente tengo esos datos y con picaxe editor si puedo modificar etc pero no pone nada o no lo entiendo a pesar que esta en castellano como pasarlo a hex.A ver si algun compañero supiera o hubiera hecho algo similar con los bas que hay en picaxe o silicon chip.
   Nada esperare antes de ponerme con el pcb por si hay solucion al tema.
   Muchas gracias
Título: Re:Pasar de Bas a Hex
Publicado por: remi04 en 02 de Febrero de 2020, 17:49:26
Hola. 

Picaxe es un sistema parecido a Arduino. Un software instalado en el ordenador que te permite abrir el fichero *.bas. Luego ese mismo programa es el que te descarga el programa a la tarjeta picaxe. Pero eso si, necesitas una tarjeta PICAXE conectada al ordenador por un puerto serie.

   Esa tarjeta picaxe lleva dos microcontorladores. Uno de ellos es un microcontrolador intérprete que ya está programado para que comunique el programa picaxe editor con el otro microcontrolador. (No sirve un microcontrolador en blanco, este tiene que tener cargado el programa que no es mas que un bootloader de picaxe).
 

Aquí puedes ver un manual es Español sobre el sistema Picaxe:

 http://www.picaxe.com/docs/axe002_tutorial_es.pdf

  Para que eso funcione solo necesitas: 

  1- El picaxe editor instalado en el ordenador
  2- Una tarjeta Picaxe donde vas a grabar tus programas en basic. *.bas
 
  Y nada más.

      Programar el BAS directamente con un K150 no es posible por varias razones, la principal es que el K150 necesita un fichero *.hex, y ese fichero debe ser generado por un compilador para el pic donde se vaya a grabar.

  Un compilador es un programa el cual lee tu fichero *.bas (que no es mas que un fichero de texto que contiene el código fuente que el compilador entiende) y una vez procesado el fichero, si no hay errores, te sacará un fichero hex adaptado al microcontrolador que hayas elegido.

De hecho el propio Picaxe Editor es un compilador. Pues lee el fichero bas, y si no hay errores generará un HEX que luego envía al bootloader (tarjeta picaxe) por puerto serie y éste es el que carga ese hex al otro microcontrolador de la tarjeta picaxe.

  Podrías probar al intentar compilar un bas con ese programa y luego indaga en las carpetas del programa a ver si lo guarda en algún sitio.

  De todas formas ese HEX será específicamente para el microcontrolador de la tarjeta picaxe que hayas seleccionado (la que tengas)  y no lo vas a poder grabar alegremente en cualquier microcontrolador sin hacer unas modificaciones previas a la cabecera y eso ya si que es bastante complicado.

Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 02 de Febrero de 2020, 18:28:41
Muchas gracias me pondre a leer el manual,del enlace y como me comentas a pesar de que leo que el 12F683 es equivalente al picaxe no me ariesgare y mirare lo de la tarjeta especifica para el pues con el editor picaxe no se hacerlo por mas que he visto pasar a hex y eso que pone algo de compilar pero por mas que lo intento no me genera ningun archivo y verificar el bas si lo hago y no da errores.
   Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 03 de Febrero de 2020, 07:21:19
Nada amigos que no me aclaro en esto de compilar etc,como dije es bas lo queria pasar a Hex y grabarlo en un 12F683 que segun veo es el equivalente del picaxe-08M para utilizar el K150.
       Proyecto fallido pues no tengo ni idea.
    Gracias por contestar.
     Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: elreypic2 en 03 de Febrero de 2020, 13:04:11
Nada amigos que no me aclaro en esto de compilar etc,como dije es bas lo queria pasar a Hex y grabarlo en un 12F683 que segun veo es el equivalente del picaxe-08M para utilizar el K150.
       Proyecto fallido pues no tengo ni idea.
    Gracias por contestar.
     Un saludo

Que tal Albatros,

Lo que intentas hacer en realidad no es posible al menos eso es lo que dice la propia página del PICAXE.
http://www.picaxe.com/What-is-PICAXE/
Citar
If you purchase 'blank' PIC chips they will not work in the PICAXE system, as they do not contain the PICAXE firmware. Therefore always buy pre-programmed 'PICAXE chips'.
No puedes descargar el código directamente en un microcontrolador PIC12F683, ya que PICAXE usa un bootloader, pero el entorno IDE no genera un archivo hex que esté disponible externamente de manera que uedas cargarlo a tu microcontrolador. De hecho eso es lo que vende PICAXE, el microcontrolador con el bootloader, de manera que no necesites usar un programador para cargar el archivo hex necesario.

No he visto el código bas, pero pudiera ser posible que usaras un compilador real de basic como el PIC Basic Pro o el PROTON y ver si algunas instrucciones son compatibles con estos compiladores. Que sí producen un hex para ser cargado con un programador en un microcontrolador PIC.

Saludos y espero esto te de mejor idea.

elreypic.
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 03 de Febrero de 2020, 17:11:40
Hola elreypic2,gracias por la información,yo lo único que puedo decir que el picaxe editor tiene una pestaña que al cargar el bas te dice programar?.
  Bien el archivo bas esta en el primer mensaje que puse si no se puede hacer lo que expuse pues nada tendré que comprar un programador apropiado para picaxe que no se como van ni cual comprar.Si es lo que tu información me dice dime por favor cual comprar para dicho picaxe-08m y asi no me complico la vida.
   Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: elreypic2 en 03 de Febrero de 2020, 17:41:23
Lo que tienes que hacer es comprar el PICAXE-08M y el cable de programación propio de PICAXE. Toda esa información la encontrarás en la misma página de PICAXE.
http://www.picaxe.com/Site_Resources/Media/Site_1/pinout/serial.jpg
http://www.picaxe.com/Hardware/Cables/PICAXE-USB-Download-Cable/
http://www.picaxe.com/Hardware/Cables/Breadboard-Cable-Adapter/

Saludos,

elreypic.
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 03 de Febrero de 2020, 18:00:17
Perfecto ves esto Breadboard Cable Adapter ni idea tenia se lo del cable,pero y perdóname mi ignorancia me preguntaba donde pongo el pic una vez que compre dicho circuito para que me lo grabe,no como el K150 que pongo en su posición cierro manivela y a grabar.Gracias por informar a un principiante en estos temas.No todo el mundo tiene esa paciencia.
     Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: elreypic2 en 03 de Febrero de 2020, 18:41:54
Albatros:

Tienes que comprar básicaente dos cosas:

1) el cable PICAXE USB
http://www.picaxe.com/Hardware/Cables/PICAXE-USB-Download-Cable/

2) el Breadboard adapter
http://www.picaxe.com/Hardware/Cables/Breadboard-Cable-Adapter/

3) Y sigues el conexionado
http://www.picaxe.com/Site_Resources/Media/Site_1/pinout/serial.jpg

Obviamente necesitas alimentar el PICAXE con 5V.

elreypic.

Título: Re:Pasar de Bas a Hex
Publicado por: planeta9999 en 03 de Febrero de 2020, 19:36:35
Huye como de la peste de sistemas propietarios como el PICAXE ese que no es más que un PIC con un bootloader, pero con un precio 10 veces superior al de un PIC.

¿ Quieres hacerte un Roger beep con un micro ?, en internet hay tropecientos mil esquemas con el HEX listo para programarlo. Ejemplo, este, que SI lo puedes grabar directamente con tu programador.

http://www.i1wqrlinkradio.com/antype/ch56/chiave32.htm
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 04 de Febrero de 2020, 04:37:39
Hola planeta9999,si vi unos cuantos menos problemáticos y con el hex listo,pero me gusto este como bien dices mas caro y para lo que entiendo yo de programacion,que es nula totalmente,el motivo es por que tiene 10 tonos seleccionables y no el tipico beep y veo que el bas es como basic o lo es,en un momento dado cambiar los numeritos y probar si cambia de tonos cuando me aburra de ellos.
   Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: remi04 en 04 de Febrero de 2020, 05:53:32
Ahí lo único que te queda es o pasar por el aro de picaxe para descargar ese sketch al microcontrolador a través de su bootloader.  Seguramente luego no puedas ni extraer el micro para que funcione aparte en una plaquita ni nada, sino que seguramente el programa solo funcionará dentro de la tarjeta picaxe.

  Otra opción, si te gusta ese sketch por que tiene 10’tonos y demás es traducir ese código a través de un compilador nativo, o hacerlo en C.  Pero claro, tienes que aprender a programar.

Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 04 de Febrero de 2020, 06:36:00
Emi04 pues no me pides nada je si de eso no tengo ni idea,madre mía es un mundo analfabeto totalmente,de circuito y pcb etc de eso si entiendo perfectamente pero no me saques de hay.
  Este es el circuito del roger beep que veo que se me esta poniendo difícil por lo que me estáis explicando uno y otro.
   Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: Albatros en 04 de Febrero de 2020, 07:08:17
Aunque no es un foro de electronica,adjunto un roger beep que realice hace nada con un 16F628A con un hex de tres tonos,pero como digo son tonos muy comunes y busco algo diferente por eso elegi este pues no encuentro un hex con tonos mas originales.
   Un saludo
Título: Re:Pasar de Bas a Hex
Publicado por: Jiha en 26 de Agosto de 2026, 16:17:08
demostracion en proteus usando compilador positron basic

Código: [Seleccionar]
;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

Device = 12F683

Config FOSC_INTOSCIO, WDTE_OFF, PWRTE_OFF, MCLRE_OFF, CP_OFF, CPD_OFF, BOREN_ON, IESO_OFF, FCMEN_OFF

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------
Declare Xtal = 4
Declare Optimiser_Level = 3
Declare Reminders Off
Declare Watchdog = Off
Declare Create_Coff On
'========================================================
' PIC12F683 - ROGER BEEP CB
'
' GP0 = PTT OUT
' GP1 = LED
' GP2 = AUDIO CCP1/PWM
' GP3 = PTT INPUT
' GP4 = SELECT TONE
'
' Oscilador interno 4 MHz
'========================================================

'--------------------------------------------------------
' CONFIGURACION DIGITAL
'--------------------------------------------------------


' GP3 y GP4 entradas
' GP0 GP1 GP2 salidas
TRISIO = %00011000

GPIO = 0


'--------------------------------------------------------
' SIMBOLOS
'--------------------------------------------------------

Symbol PTT_OUT = GPIO.0
Symbol LED     = GPIO.1
Symbol AUDIO   = GPIO.2
Symbol PTT_IN  = GPIO.3
Symbol SW_TONE = GPIO.4


'--------------------------------------------------------
' VARIABLES
'--------------------------------------------------------

Dim B1 As Byte
Dim B0 As Byte


'========================================================
' INICIO
'========================================================

Start:

    B1 = 1
   
'========================================================
' BUCLE PRINCIPAL
'========================================================

Main:

    DelayMS 10

    If PTT_IN = 0 Then GoTo Out

    DelayMS 10

    If SW_TONE = 0 Then GoTo SetTone

    GoTo Main


'========================================================
' ENTRAR EN PROGRAMACION
'========================================================

SetTone:

    High LED

    DelayMS 1500

    Low LED

    GoTo ToneSet1


'========================================================
ToneSet1:

    B1 = 1

    If SW_TONE = 1 Then GoTo ToneSet2

    GoTo ToneSet1


'========================================================
ToneSet2:

    If SW_TONE = 0 Then GoTo ToneSet

    If PTT_IN = 0 Then GoTo Main

    GoTo ToneSet2


'========================================================
' SIGUIENTE TONO
'========================================================

ToneSet:

    High LED

    DelayMS 400

    Inc B1

    Low LED

    If B1 > 11 Then GoTo LedFlash

    GoTo ToneSet2


'========================================================
' ERROR
'========================================================

LedFlash:

    DelayMS 500

    For B0 = 1 To 20

        High LED
        DelayMS 150

        Low LED
        DelayMS 150

    Next B0

    DelayMS 500

    GoTo Start


'========================================================
' PTT ACTIVADO
'========================================================

Out:

    High PTT_OUT
    High LED

    If PTT_IN = 1 Then GoTo Beep

    GoTo Out


'========================================================
' SELECCION DEL TONO
'========================================================

Beep:

    If B1 = 1 Then GoTo Play1
    If B1 = 2 Then GoTo Play2
    If B1 = 3 Then GoTo Play3
    If B1 = 4 Then GoTo Play4
    If B1 = 5 Then GoTo Play5
    If B1 = 6 Then GoTo Play6
    If B1 = 7 Then GoTo Play7
    If B1 = 8 Then GoTo Play8
    If B1 = 9 Then GoTo Play9
    If B1 = 10 Then GoTo Play10
    If B1 = 11 Then GoTo Play11

    GoTo Beep


'========================================================
' TONO 1 - SIN BEEP
'========================================================

Play1:

    GoTo OutTone


'========================================================
' TONO 2
' C#6 aproximadamente 554 Hz
'========================================================

Play2:

    Tone554
    GoTo OutTone


'========================================================
' TONO 3
' D7 aproximadamente 1175 Hz
'========================================================

Play3:

    Tone1175
    GoTo OutTone


'========================================================
' TONO 4
' F7 aproximadamente 1396 Hz
'========================================================

Play4:

    Tone1396
    GoTo OutTone


'========================================================
' TONO 5
' G7 aproximadamente 1568 Hz
'========================================================

Play5:

    Tone1568
    GoTo OutTone


'========================================================
' TONO 6
' A#7 aproximadamente 1865 Hz
'========================================================

Play6:

    Tone1865
    GoTo OutTone


'========================================================
' TONO 7 - DOBLE BEEP
' D7 - G7
'========================================================

Play7:

    Tone1175
    Tone1568

    GoTo OutTone


'========================================================
' TONO 8 - TRIPLE BEEP
' C7 - G7 - C7
'========================================================

Play8:

    Tone1047
    Tone1568
    Tone1047

    GoTo OutTone


'========================================================
' TONO 9
' G5 - G#5 - A#5 - D#5
'========================================================

Play9:

    Tone392
    Tone415
    Tone466
    Tone311

    GoTo OutTone


'========================================================
' TONO 10
'========================================================

Play10:

    Tone392
    Tone262
    Tone262
    Tone523
    Tone262
    Tone330
    Tone262

    GoTo OutTone


'========================================================
' TONO 11
'========================================================

Play11:

    Tone330
    Tone370
    Tone392
    Tone440
    Tone494
    Tone494
    Tone466
    Tone392
    Tone370

    GoTo OutTone


'========================================================
' GENERADORES DE TONO
'
' CCP1 -> GP2
' PWM 50 %
'========================================================


'--------------------------------------------------------
' 262 Hz
'--------------------------------------------------------

Sub Tone262

    PR2 = 238
    CCP1CON = %00101100
    CCPR1L = 119
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 311 Hz
'--------------------------------------------------------

Sub Tone311

    PR2 = 200
    CCP1CON = %00101100
    CCPR1L = 100
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO
EndSub



'--------------------------------------------------------
' 330 Hz
'--------------------------------------------------------

Sub Tone330

    PR2 = 188
    CCP1CON = %00101100
    CCPR1L = 94
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 370 Hz
'--------------------------------------------------------

Sub Tone370

    PR2 = 168
    CCP1CON = %00101100
    CCPR1L = 84
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 392 Hz
'--------------------------------------------------------

Sub Tone392

    PR2 = 158
    CCP1CON = %00101100
    CCPR1L = 79
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 415 Hz
'--------------------------------------------------------

Sub Tone415

    PR2 = 150
    CCP1CON = %00101100
    CCPR1L = 75
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 440 Hz
'--------------------------------------------------------

Sub Tone440

    PR2 = 141
    CCP1CON = %00101100
    CCPR1L = 71
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 466 Hz
'--------------------------------------------------------

Sub Tone466

    PR2 = 133
    CCP1CON = %00101100
    CCPR1L = 67
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 494 Hz
'--------------------------------------------------------

Sub Tone494

    PR2 = 126
    CCP1CON = %00101100
    CCPR1L = 63
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 523 Hz
'--------------------------------------------------------

Sub Tone523

    PR2 = 119
    CCP1CON = %00101100
    CCPR1L = 60
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 554 Hz
'--------------------------------------------------------

Sub Tone554

    PR2 = 112
    CCP1CON = %00101100
    CCPR1L = 56
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1047 Hz
'--------------------------------------------------------

Sub Tone1047

    PR2 = 238
    CCP1CON = %00101100
    CCPR1L = 119
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1175 Hz
'--------------------------------------------------------

Sub Tone1175

    PR2 = 212
    CCP1CON = %00101100
    CCPR1L = 106
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1396 Hz
'--------------------------------------------------------

Sub Tone1396

    PR2 = 178
    CCP1CON = %00101100
    CCPR1L = 89
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1568 Hz
'--------------------------------------------------------

Sub Tone1568

    PR2 = 158
    CCP1CON = %00101100
    CCPR1L = 79
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1865 Hz
'--------------------------------------------------------

Sub Tone1865

    PR2 = 133
    CCP1CON = %00101100
    CCPR1L = 67
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'========================================================
' FIN DEL ROGER BEEP
'========================================================

OutTone:

    DelayMS 10

    T2CON = 0
    CCP1CON = 0

    Low AUDIO
    Low PTT_OUT
    Low LED

    GoTo Main