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

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

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #225 en: 14 de Agosto de 2007, 17:41:59 »

Sera que pregunto boludeses, o somos pocos los que usamos MKB.

Carlitos.

Mas bien lo segundo, osea son pocos o son "closetos". En lo Personal prefiero Proton a MKB  ya que es muy rebuscado en muchas cosas y a veces por tiempo o recursos no me es posible probar los codigos de MKB en mi PC del trabajo por eso casi no hay mucha respuesta de mi parte. Pero a fin de cuentas me alegra que hayas encontrado la solucion y la pregunta es ¿porque todos a cero?
"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 Carli

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 109
Re: Comenzando con Mikrobasic
« Respuesta #226 en: 14 de Agosto de 2007, 18:26:01 »
Navisimo los puse a todos en 1 y no funcionaba, los pase a 0 y funciona.

Aunque lo mio sea mediocre, hice prueba y error dado que en la ayuda de MKB se olvidaron de poner para que seria 1 y 0.

Disculpas.....

Saludos.

Carlitos.
Nueve de Julio - Buenos Aires - Argentina

Desconectado Carli

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 109
Re: Comenzando con Mikrobasic
« Respuesta #227 en: 14 de Agosto de 2007, 18:29:43 »
Reinicie la PC los puse en uno y funciona  :oops:

No se......

Saludos  :shock:
Nueve de Julio - Buenos Aires - Argentina

Desconectado Carli

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 109
Re: Comenzando con Mikrobasic
« Respuesta #228 en: 14 de Agosto de 2007, 18:34:45 »
Si cambio los 0 por los 1 no me funcionan los ds1820  :shock:

 :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:

Nueve de Julio - Buenos Aires - Argentina

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #229 en: 14 de Agosto de 2007, 19:27:23 »
mmmm Por esas cosas deje de usarlo. Y total si funciona como quieres o ya no?
"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 Carli

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 109
Re: Comenzando con Mikrobasic
« Respuesta #230 en: 17 de Agosto de 2007, 21:33:50 »
Perdón overclokee el micro de la compu se me recalento y no compilaba bien.

Carlitos.
Nueve de Julio - Buenos Aires - Argentina

Desconectado Dani27v

  • PIC12
  • **
  • Mensajes: 73
Re: Comenzando con Mikrobasic
« Respuesta #231 en: 21 de Agosto de 2007, 17:06:19 »

hola, quisiera preguntar porque este trozo de código no me funciona y este otro si:

El que no me funicona:
(ejemplo posteado por Paola09)


program lcdmicroe

main:
dim text as char[20]

TRISA = 0
TRISb = 0

text="hola"
Lcd8_Init(PORTB, 7, 6, 5, 4, 3, 2, 1, 0, PORTA, 0, 1, 2) 'en b estan los datos del 7 al 0 y en a va rs,rw,e     
Lcd8_Cmd(Lcd_CURSOR_OFF)
Lcd8_Out(1, 1,text) ' Print text at LCD
end.


Y el que si que me funciona:


Program lcd

dim text as char[20]
   
main:

  TRISB = 0                   ' PORTB is output
  TRISA = 0                   ' PORTA is output
 
  Lcd8_Init(PORTB,7,6,5,4,3,2,1,0, PORTA,0,1,2) ' Initialize LCD at PORTB and PORTA
  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)
  text = "mikroElektronika"
  Lcd8_Out(1, 1, text)        ' Print text at LCD

end.

Un saludo y gracias a todos de antemano.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Comenzando con Mikrobasic
« Respuesta #232 en: 21 de Agosto de 2007, 18:32:16 »
En cualquier lenguaje de programacion luego de iniciar el LCD deberas mandar a borrar la pantalla, sino tendras resultados inesperados.
Una de las cosas que hace el borrado es posicionar el puntero de memoria en la pantalla de escritura.

El segundo ejemplo tiene la instruccion LCD Clear que hace esto que digo, mientras el primero no lo tiene, si se la colocas veras que funciona...

Espero te sirva la explicacion... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Carli

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 109
Re: Comenzando con Mikrobasic
« Respuesta #233 en: 21 de Agosto de 2007, 20:30:18 »
Tengo un problema, coloque un LCD 20x4 donde tenia instalado un 16x2 por lo cual tuve que usar la libreria
  Lcd_First_Row = 0
  Lcd_Second_Row = 0
  Lcd_Third_Row = 0
  Lcd_Fourth_Row = 0

me encuentro con el problema que antes con el LCD 16x2 estaba usando RA2 y RA3 como entradas analogicas y todo funcionaba bien, ahora que uso el LCD 20x4 no enciende a menos que borre el codigo de una de las dos entradas.
Estoy usando un 16f876a. :shock:

Gracias.
Nueve de Julio - Buenos Aires - Argentina

Desconectado Dani27v

  • PIC12
  • **
  • Mensajes: 73
Re: Comenzando con Mikrobasic
« Respuesta #234 en: 22 de Agosto de 2007, 14:24:29 »
Hola, la verdad es que me da un poco de verguenza poner por aki el código q estaba haciendo, porq me imagino que no estara muy bien, pero no se como solucinar el problema que tengo.  Estoy haciendo una practica la cual consta de un lcd, en el que al iniciarse aparece un menu, en el que te da a elegir dos opciones: o eliges el valor 1 o el valor 2,( los cuales se eligen mediante pulsadores RA03 Y RA04) si elegimos el valor 1 nos lleva a otra pantalla donde nos indica que hemos elegido el numero 1 y lo mismo sucede si hubieramos elegido el valor 2, para volver al menu inicial bastaria con pulsar los dos pulsadores a la  vez, estoy utilizando un 16f84 con un lcd de 2x 16. El problema que tengo es que cuando  le doy para crear el .hex, me dice que no hay memoria  ram suficiente o algo asi : 0:0 E-0 Linker error: Not enough RAM  row __lib_lcd8custom.ppas  y 0:0 E-0 Linker error: Not enough RAM  out_char __lib_lcd8custom.ppas  y no me deja compilarlo. Supongo que cambiando a otyro pic mas potente no habria problema, pero tambien supongo que mi programa es muy básico y no lo estoy jhaciendo bien, estoy consumiendo mas memoria de lo se deberia,.

program menulcd


dim a as byte
dim b as byte

Sub procedure menu1

  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)

  Lcd8_Out(1, 1,"has elegido 1")
  Lcd8_Out(2,1,"volver:pulsa 1y2")
 
  End Sub
 
 
  Sub procedure menu2

  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)

  Lcd8_Out(1, 1,"has elegido 2")
  Lcd8_Out(2,1,"volver:pulsa 1y2")

  End Sub
 
 
main:

  TRISB = 0
  TRISA = %11000

  Lcd8_Init(PORTB,7,6,5,4,3,2,1,0, PORTA,0,1,2)
  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)

  Lcd8_Out(1, 1,"pulsa una opcion")
  Lcd8_Out(2,3,"1 o 2")
 
  if PORTA.4 = 1 then
        menu1
       a =1
      else
      goto main
     
      end if
     
   if PORTA.5 = 1 then
   
       menu2
        b =1
       else
     goto main
        end if
       
  if a = b then
 
  goto main
      end if
end.


Gracias de antemano, un saludo.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #235 en: 22 de Agosto de 2007, 17:31:09 »
Tengo un problema, coloque un LCD 20x4 donde tenia instalado un 16x2 por lo cual tuve que usar la libreria
  Lcd_First_Row = 0
  Lcd_Second_Row = 0
  Lcd_Third_Row = 0
  Lcd_Fourth_Row = 0

me encuentro con el problema que antes con el LCD 16x2 estaba usando RA2 y RA3 como entradas analogicas y todo funcionaba bien, ahora que uso el LCD 20x4 no enciende a menos que borre el codigo de una de las dos entradas.
Estoy usando un 16f876a. :shock:

Gracias.


Y si estan a digital los pines del PIC como que me perdi en el ultimo mensaje
"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 navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #236 en: 22 de Agosto de 2007, 17:34:28 »
Hola, la verdad es que me da un poco de verguenza poner por aki el código q estaba haciendo, porq me imagino que no estara muy bien, pero no se como solucinar el problema que tengo.  Estoy haciendo una practica la cual consta de un lcd, en el que al iniciarse aparece un menu, en el que te da a elegir dos opciones: o eliges el valor 1 o el valor 2,( los cuales se eligen mediante pulsadores RA03 Y RA04) si elegimos el valor 1 nos lleva a otra pantalla donde nos indica que hemos elegido el numero 1 y lo mismo sucede si hubieramos elegido el valor 2, para volver al menu inicial bastaria con pulsar los dos pulsadores a la  vez, estoy utilizando un 16f84 con un lcd de 2x 16. El problema que tengo es que cuando  le doy para crear el .hex, me dice que no hay memoria  ram suficiente o algo asi : 0:0 E-0 Linker error: Not enough RAM  row __lib_lcd8custom.ppas  y 0:0 E-0 Linker error: Not enough RAM  out_char __lib_lcd8custom.ppas  y no me deja compilarlo. Supongo que cambiando a otyro pic mas potente no habria problema, pero tambien supongo que mi programa es muy básico y no lo estoy jhaciendo bien, estoy consumiendo mas memoria de lo se deberia,.

program menulcd


dim a as byte
dim b as byte

Sub procedure menu1

  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)

  Lcd8_Out(1, 1,"has elegido 1")
  Lcd8_Out(2,1,"volver:pulsa 1y2")
 
  End Sub
 
 
  Sub procedure menu2

  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)

  Lcd8_Out(1, 1,"has elegido 2")
  Lcd8_Out(2,1,"volver:pulsa 1y2")

  End Sub
 
 
main:

  TRISB = 0
  TRISA = %11000

  Lcd8_Init(PORTB,7,6,5,4,3,2,1,0, PORTA,0,1,2)
  Lcd8_Cmd(Lcd_clear)
  lcd8_cmd (Lcd_Blink_Cursor_On)

  Lcd8_Out(1, 1,"pulsa una opcion")
  Lcd8_Out(2,3,"1 o 2")
 
  if PORTA.4 = 1 then
        menu1
       a =1
      else
      goto main
     
      end if
     
   if PORTA.5 = 1 then
  
       menu2
        b =1
       else
     goto main
        end if
       
  if a = b then
 
  goto main
      end if
end.


Gracias de antemano, un saludo.

Pues asi mal hecho no se me hace el programa, podrias intentar usar un select case, o bien usar LCDOUT a 4bits en lugar de a 8 y por ultimo quitar los Procedimientos y ejecutarlos en vivo. Se me hace muy raro que no te deje compilarlo no son muchas lineas. Tal vez este el error en la libreria. o ¿es demo la version?
"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 Dani27v

  • PIC12
  • **
  • Mensajes: 73
Re: Comenzando con Mikrobasic
« Respuesta #237 en: 22 de Agosto de 2007, 18:07:48 »
En primer lugar gracias por responder, no, la version que utilizo es la completa, es curioso pero me sale los mismos mensajes de error cuando utilizo las librerias y escribo mas de una linea en el lcd, probare a aplicar tus recomendaciones,tambien he compilado el mismo codigo pero cambiando a otro pic como por ejemplo el 16f877a, y asi ya no da el error,
 un saludo y nuevamente gracias.

Desconectado Dani27v

  • PIC12
  • **
  • Mensajes: 73
Re: Comenzando con Mikrobasic
« Respuesta #238 en: 26 de Agosto de 2007, 17:20:05 »
 
 Alguien me  ayuda a buscar el error??? estoy haciendo practicas con el tim y el lcd, queria hacer un contador ( cada segundo) que se viera en el lcd, es decir que contara desde 0 hasta 255 ( valor maximo de la variable) y que mediante el porta.4 se reseteara a 0, más adelante  me gustaria  tambien poder hacer una pausa en el contaje cuando se pulsara otro pulsador, pero eso ya lo dejo para mas adelante, ahora quisiera  ver donde me equivoco, gracias a todos de antemano.

Código: [Seleccionar]
program lcdtempo


dim contador as word
dim segundo as char

sub procedure interrupt
  inc(contador)          ' Incrementamos el valor de counter cada vez que se produce la interrupcion
  TMR0   = 96
  INTCON = $20   ' T0IE = 1, T0IF = 0
end sub



main:

TRISB = 0
TRISA = %11000                  '..... definiciones


 OPTION_REG = $84 ' Asignacion del prescaler al Timer0
 contador= 0            ' Inicializacion de contador
 TMR0 = 96
 INTCON = $A0     ' Habilitamos la  interrupcion del TimerO
 

Lcd8_Init(PORTB,7,6,5,4,3,2,1,0, PORTA,0,1,2)
Lcd8_Cmd(Lcd_clear)
lcd8_cmd (Lcd_Blink_Cursor_On)
Lcd8_Out(1, 1,"Tiempo restante:")


segundo ="0"

 while TRUE
   if contador= 400 then ' Si el contador es 400, incrementamos en 1 la variable segundo y reseteara counter

     inc ( segundo)
       
     Lcd8_Out(2, 7, "segundo" )  ' muestra el valor de segundo en la 2 linea del lcd
     
     contador = 0
        end if
    if porta.4 = 1 then            ' resetea contador
   
      segundo = "0"
     
        end if
       

       
 wend

end.

Desconectado Carli

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 109
Re: Comenzando con Mikrobasic
« Respuesta #239 en: 27 de Agosto de 2007, 21:08:23 »
Gracias compañeros, solucione el problema cambiando del MKB 5 al MKB 5.002, ahora tengo otro problema mientras no compilo puedo escribir bien despues de compilar me aparece un cartel que dice:

Exeption ElistError in module mikrobasic.exe at 0001C2D2
List index out of bounds (-1)

Y tiene un boton de aceptar, alguien sabe que puedo hacer para que no aperezca mas.

Saludos y gracias.

Carlitos.
Nueve de Julio - Buenos Aires - Argentina


 

anything