Autor Tema: Comenzando con Mikrobasic  (Leído 293633 veces)

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

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Comenzando con Mikrobasic
« Respuesta #30 en: 06 de Septiembre de 2006, 18:02:50 »
Hola!
A ver si alguien me da una mano...

Acabo de terminar mi primer programita en Mikro, migre una parte de un programita que maneja un reloj de 4 digitos con 7 segmentos mediante registros de desplazamiento.

El problema es que si bien la compilacion termina sin errores, el reloj se queda como si el pic ni estuviera enchufado...Si lo programo con el basic que usaba antes, anda ok, por lo que descarto que el problema es la migracion.
A mi me parece que en la definicion de los fuses....
Uso un 16F628. sin reset y con un cristal de 4MHz.
El codigo es este:

Código: [Seleccionar]
program x7seg_001

'----------SYMBOL--------------
Symbol CLOCK = PORTB.1
Symbol data = PORTB.0
Symbol reset164 = PORTB.2
Symbol sino = PORTB.3
'-----------DIM----------------
Dim col As Byte
Dim i As Byte
Dim aux As Word

'----Rutinas------------------
escribo:
For col = 1 To 16
If aux.0 = 0 Then
data = 1
      delay_Us(2)
clock = 0
      delay_Us(2)
clock = 1
      delay_Us(2)
Else
data = 0
      delay_Us(2)
clock = 0
      delay_Us(2)
clock = 1
      delay_Us(2)
End if
aux = aux >> 1
Next col
Return


'---Programa principal------------
main:
cmcon = 7
porta=0

'Configuro el portA:
TRISA.0 = 0  'Salida
TRISA.1 = 0  'Salida
TRISA.2 = 1  'Entrada H
TRISA.3 = 1  'Entrada M
TRISA.4 = 0  'Salida
TRISA.5 = 0  'Salida

'Configuro el portB:
TRISB.0 = 0  'Salida (DATA)
TRISB.1 = 0  'Salida (CLOCK)
TRISB.2 = 0  'Salida (RESET)
TRISB.3 = 0  'Salida (SI/NO)
TRISB.4 = 1  'Entrada DS1820
TRISB.5 = 0  'Salida
TRISB.6 = 0  'Salida
TRISB.7 = 0  'Salida

reset164 = 1
sino = 0

clock = 0
data = 0


'---------PROGRAMA PRINCIPAL------------
Delay_ms(500)

  data = 1
      delay_Us(2)
clock = 0
      delay_Us(2)
clock = 1
      delay_Us(2)

data = 0
      delay_Us(2)
clock = 0
      delay_Us(2)
clock = 1
      delay_Us(2)
     
      Delay_ms(1500)
loop:
aux = %1010101010101010
Gosub escribo
aux = %1010101010101010
Gosub escribo
  Delay_ms(1500)

aux = %0101010101010101
Gosub escribo
aux = %0101010101010101
Gosub escribo
  Delay_ms(1500)

Goto loop
End.

y esta es una captura de como defini los fuses en el proyecto.
Si alguien tiene una sugerencia, le estoy agradecido. :lol:

Saludos. :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #31 en: 06 de Septiembre de 2006, 18:23:45 »
con lo de "con el basic que usaba antes" te refieres a una version anterior del mismo MKB o a una de PBP o Proton.

Algo asi como comentario los TRIS porque no lo pones en una sola linea, en lugar de poner TRISA.0 a TRISA.5 pon TRISA = 12 o TRISA=%001100, No mas pa que se vea mas bonito jejeje. Y lo de las subrutinas habria que checar bien porque no lo conviertes en sub procedure y todo lo dejas dentro del main

-------------------------------------

Y bueno checando los ejemplitos que estamos poniendo me surgio una duda, el ultimo ejemplo que puso Paola, en el que usa Includes, la pregunta es. ¿en lugar de poner Includes se puede poner sub procedimientos y hacer saltos con gosub no? cual es la ventaja y desventaja de esos Usos?


"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Comenzando con Mikrobasic
« Respuesta #32 en: 06 de Septiembre de 2006, 18:25:21 »
Hola:

Ariel, probaste haciendo click en el boton default que aparece al inicio cuando estas creando el proyecto?

Eso te configura los registros, y si te falta algo mas seguin eso puedes modificaarlo.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Comenzando con Mikrobasic
« Respuesta #33 en: 06 de Septiembre de 2006, 18:28:14 »
Y bueno checando los ejemplitos que estamos poniendo me surgio una duda, el ultimo ejemplo que puso Paola, en el que usa Includes, la pregunta es. ¿en lugar de poner Includes se puede poner sub procedimientos y hacer saltos con gosub no? cual es la ventaja y desventaja de esos Usos?

Hola:

Max, claro que se puede utilizar procedimientos, incluso con parametros, la cuestion o ventaja de trabajar con includes, seria para programas extensos y algo complejos, y asi no tienes un codigo de un poco de paginas en el mismo proyecto, asi con los includes puedes ir haciendo partes el codigo y los llamas en un programa principal.  No se si me explique.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #34 en: 06 de Septiembre de 2006, 18:32:40 »
Si, si te explcaste bien y claro; como dices, me late la opcion de usar includes en programas mega extensos y sub rutinas en programas de pocas lineas. Danke
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Comenzando con Mikrobasic
« Respuesta #35 en: 06 de Septiembre de 2006, 18:36:20 »
Hola Lord!
Voy a probar con las opciones por defecto, aunque creo que la primera vez que compile no habia modificado nada por ese lado.

Respecto de los procedures y funciones, me parecen espectaculares por la reutilizabilidad del codigo...por lo pronto voy a intentar dejar de usar el GOSUB....RETURN.

Saludos. :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado PAOLA09

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 332
Re: Comenzando con Mikrobasic
« Respuesta #36 en: 06 de Septiembre de 2006, 18:38:03 »
Hola aitopes puedes subir el esquema?, asi intento mirar si descubro algo :)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Comenzando con Mikrobasic
« Respuesta #37 en: 06 de Septiembre de 2006, 18:38:49 »
Hola:

Otra cosa que note, es que MKB permite utilizar una bariable para trabajar con un pin X de un X puerto, lo veo en el ejemplo de samshiel_pic :

Código: Visual Basic
  1. FOR X=7 TO 0 STEP -1
  2.      PORTB.X=0
  3.      DELAY_MS(500)
  4.      NEXT X

Hasta donde recuerdo ni PBP ni proton permitian eso  :mrgreen:

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Comenzando con Mikrobasic
« Respuesta #38 en: 06 de Septiembre de 2006, 18:51:36 »
Hola Pao!

El esquema de la parte del PIC te lo debo para mañana....es muy simple, unos pines del puerto B (tal como se ve en el codigo) manejan el registro de desplazamiento.
Lo que si tengo es la parte del registro y del display...aca van:

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Comenzando con Mikrobasic
« Respuesta #39 en: 06 de Septiembre de 2006, 19:08:18 »
Pa que veas que no lo sabia LordLafebre simplemente a sido intuicion

Citar
Otra cosa que note, es que MKB permite utilizar una bariable para trabajar con un pin X de un X puerto, lo veo en el ejemplo de samshiel_pic :

Hasta donde recuerdo ni PBP ni proton permitian eso 

Por que de VB ni papa lo que pasa es que toy haciendo una lluvia de ideas y pruebo haber que tal van.  :mrgreen:
jejeje

Yo si que estoy desde cero pero toy intentando seguir el ritmo y ademas despuntar yo solo.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Comenzando con Mikrobasic
« Respuesta #40 en: 06 de Septiembre de 2006, 19:17:43 »
Hola:

samshiel_pic,no se me hubiera ocurrido hacer lo que hiciste tu, ya que como menciono no se puede en PBP ni en proton, pero ya vas a ver que le agarras cariño al basic en general, y sobre todo a este, es increible, recien lo veo hoy y parece que ya lo he utilizado desde hace rato  :D, y lo que desconozco la ayuda me lo deja mas que claro.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Comenzando con Mikrobasic
« Respuesta #41 en: 06 de Septiembre de 2006, 19:29:54 »
Hola Navaismo!
Citar
con lo de "con el basic que usaba antes" te refieres a una version anterior del mismo MKB o a una de PBP o Proton.

Usaba el PIC Simulator IDE, espectacular, con un monton de cosas, simulador y osciloscopio incluido, soporte para LCD, 18S20 y varias cositas mas, pero.....no tiene muchos usuarios, una ayuda muy muy escueta, por lo que las dudas te las tenes que sacar con sangre :shock:. Por lo demas, es muy bueno.

Esta en http://www.oshonsoft.com/

Saludos. :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #42 en: 06 de Septiembre de 2006, 19:33:46 »
Yo tenia por ahi el picsimulator IDE pero jamas vi que tuviera para compilar en BASIC :D :D :D estoy bien wey gracias por el dato :D



-------------------------------
 :shock: Ya voy a empezar con mis cosas, sucede que queria hacer otro ejemplo con el adc pero a la hora de compilarlo para ver si me quedaba bien me salen un buen de errores el primerito es este:

3:2 E-14 Identifier "c" has been already declared in p16f877.pbas ADCBlink.pbas
50:1 E-1 'end' is not a valid identifier ADCBlink.pbas
50:4 E-4 Syntax error: Expected 'as' but '.' found ADCBlink.pbas
51:1 E-37 Unknown type "" ADCBlink.pbas

y varios mas aqui les pongo el codigo no se que este mal, ya instale y reinstale como 3 veces y nada, es mas ya no compila los otros que postee :( :5]

Código: FreeBasic
  1. program ADCBlink
  2.  
  3. dim c,p     as byte
  4.     tiempo  as word
  5.     tiempot as string[5]
  6.     msj     as chr[20]
  7.  
  8. main:
  9.  
  10.  ADCON1 = 142
  11.  TRISA = 1
  12.  
  13.  Lcd_Config(PORTD,3,2,1,0,PORTD,4,5,6)
  14.  Lcd_Cmd(LCD_CURSOR_OFF)
  15.  Lcd_Cmd(LCD_CLEAR)
  16.  
  17. tiempo = adc_read(0)
  18. wordtostr(tiempo,tiempot)
  19. lcd_out(1,5,tiempot)
  20. lcd_out(2,5,msj)
  21.  
  22.  if tiempo <= 200 then
  23.   P = 1000
  24.   c=1
  25.  end if
  26.  
  27.  if tiempo > 200 AND tiempo <= 500 then
  28.   P = 500
  29.   c=2
  30.  end if
  31.  
  32.  If tiempo > 500 AND tiempo <= 1024 then
  33.   P = 250
  34.   c=3
  35.  end if
  36.  
  37.  select case c
  38.   case 1
  39.    msj = "Lento"
  40.   case 2
  41.    msj = "Medio"
  42.   case 3
  43.    msj = "Rapido"
  44. end select
  45.  
  46.  delay_ms(P)
  47.  PORTC = not PORTC
  48.  
  49. goto main
  50. end.

Queria hacerlo con sub procedure pero no supe como y no queria usar labels y gosub-return asi que lo deje asi, No se si sirva ya que no lo compilo.


"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Comenzando con Mikrobasic
« Respuesta #43 en: 06 de Septiembre de 2006, 19:41:18 »
Hola!

El error
Citar
3:2 E-14 Identifier "c" has been already declared in p16f877.pbas ADCBlink.pbas
se debe a que la variable C aparentemente se ha declarado en el archivo p16f877.pbas, seguramente para nombrar al puerto C.....

Los otros tres
Citar
50:1 E-1 'end' is not a valid identifier ADCBlink.pbas
50:4 E-4 Syntax error: Expected 'as' but '.' found ADCBlink.pbas
51:1 E-37 Unknown type "" ADCBlink.pbas
pueden deberse a algun espacio de mas al final del "end." o bien a que interprete el END del "END SELECT" como final del programa.... aunque consultando la ayuda parece estar bien escrito..

Que bueno que lo hayamos encarado entre varios, por que solo, aparecen estas dudas y te pones a llorar. :)

Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Comenzando con Mikrobasic
« Respuesta #44 en: 06 de Septiembre de 2006, 19:42:53 »
Hola:

Rapidamente lo que note es esto:

dim c,p     as byte    tiempo  as word    tiempot as string[5]    msj     as chr[20]

el dim utilizalo para cada variable diferente, por ejemplo

Código: Visual Basic
  1. dim c,p     as byte
  2. dim tiempo  as word
  3. dim tiempot as string[5]
  4. dim msj     as chr[20]

Esto puede ser lo que te este generando muchos errores.