TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado 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
-
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.
-
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
-
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.
-
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
-
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.
-
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
-
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
-
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/
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.
-
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
-
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.
-
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
-
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.
-
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
-
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
-
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.
-
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
-
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
-
demostracion en proteus usando compilador positron basic
;-------------------------------------------------------------------------------
;**** 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