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

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

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #255 en: 06 de Marzo de 2008, 15:48:13 »
mmmm si no mal recuerdo en una de las versiones habia problemas con lcd en 8 bits es la mas actual o una anterior?
"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 #256 en: 07 de Marzo de 2008, 14:09:31 »
Gracias por contestarme Navisimo, la version que tengo es la 5.0.0.2. ¿Hay alguna mas nueva?
Nueve de Julio - Buenos Aires - Argentina

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #257 en: 07 de Marzo de 2008, 14:20:38 »
Ups no que yo recuerde. Se me hace muy raro que siga habiendo bugs con esa libreria
"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 MiCrOtRoNiC

  • PIC18
  • ****
  • Mensajes: 271
Re: Comenzando con Mikrobasic
« Respuesta #258 en: 07 de Marzo de 2008, 15:43:38 »
Hola Compañeros, tengo un problema. Estoy usando un LCD 4X20, si lo conecto en 4 bit y uso este codigo:
Lcd_Config(PORTB,4,1,3,2,PORTC,4,6,5 )
   Lcd_Cmd(LCD_CURSOR_OFF)
   Lcd_Cmd(LCD_CLEAR)
   LCD_CMD(128)
   LCD_CMD(192)
   LCD_CMD(148)
   LCD_CMD(212)
Funciona bien.

Ahora cuando lo conecto a 8 bit no funciona, por supuesto en vez de usar LCD_CMD uso LCD8_CMD y hago las 4 conecciones restantes, no funciona.

¿Les, paso? :shock:

Gracias.

Prueba con la version 6.0.0

Desconectado Aplanado

  • PIC10
  • *
  • Mensajes: 20
Re: Comenzando con Mikrobasic
« Respuesta #259 en: 07 de Marzo de 2008, 21:56:51 »


Hola!!!  les hago una pregunta, ya que me estoy rompiendo la cabeza y la verdad es que no se como solucionarlo. hice un programaita sencillo para un 16F84 y queria poner una interrupcion en RB0, osea cuando presione un pulsador conectado a RB0 que ponga todo el puerto a 0, pero la verdad es que no se como hacerlo, alguien me podria ayudar??

el programita es mas o menos asi:

TRISB = %00000001  'declaro al puerto B como salidas salvo RB0 como ENT
TRISA = 255              'declaro el puerto A como entradas
PORTA = 0                 'pongo en 0 las entradas
PORTB = 0                 'pongo en 0 las salidas

main:
if PORTA.0 = 1            'SI, puerto A.0  esta en 1
then                           'ENTONCES,
PORTB.1 = 1               'Puerto B.0 se activa
delay_ms(1200)           'Duracion de la activacion de RA.0
portb.1= 0                   'Pongo a 0 RA.1
portb.2 =1                   'Puerto B.2  se activa
delay_ms(1200)           'duracion de la activacion de RB.2
portb.2 = 0                  'pongo a 0 RB.2
end if
goto main
end.

lo que yo quiero hacer es que cuando ponga a 1 RB0 se apague el resto del puerto.

Saludos y Muchas gracias!!

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #260 en: 07 de Marzo de 2008, 22:49:26 »
Es en MKB??

Bueno lo unico que tienes que hacer es un IF que cuando el RB0 tenga un 1 del RB1 al RB7

ejemplo:

Declaras  el puerto B como salida del RB1 al  RB7 y el RB0 como entrada

TRISB=1 lo que equvale a %00000001

y en el programa pones

IF portb.0=1 then
PORTB=1  'apagas todo y mantienes el estado 1 del RB0
else
PORTB=%11111110 ' si no esta en 1 prendes todo y mantienes en 0 el rb0
endif   
"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 Aplanado

  • PIC10
  • *
  • Mensajes: 20
Re: Comenzando con Mikrobasic
« Respuesta #261 en: 08 de Marzo de 2008, 22:15:18 »
hola si es MKB, pero.... lo hice como vos me decis y no anda:S

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #262 en: 09 de Marzo de 2008, 03:50:32 »
Pues, pon de nuevo el codigo modificado par5a saber que es lo que esta pasando. Y los fuses estan bien configurados?
"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 Aplanado

  • PIC10
  • *
  • Mensajes: 20
Re: Comenzando con Mikrobasic
« Respuesta #263 en: 09 de Marzo de 2008, 21:27:51 »
 yo lo hice de esta forma, pero la verdad es que no se si estoy errado o no, poruq ela verdad es que recien estoy empezando a entender el funcionamiento, lo mas basico, de este lenguaje aplicado a los pic
TRISB = %00000001 'declaro al puerto B como salidas salvo RB0 como ENT
TRISA = 255 'declaro el puerto A como entradas
PORTA = 0 'pongo en 0 las entradas
PORTB = 0 'pongo en 0 las salidas

main:

IF portb.0=1 then
PORTB=1 'apagas todo y mantienes el estado 1 del RB0
else
if PORTA.0 = 1 'SI, puerto A.0 esta en 1
then 'ENTONCES,
PORTB.1 = 1 'Puerto B.0 se activa
delay_ms(1200) 'Duracion de la activacion de RA.0
portb.1= 0 'Pongo a 0 RA.1
portb.2 =1 'Puerto B.2 se activa
delay_ms(1200) 'duracion de la activacion de RB.2
portb.2 = 0 'pongo a 0 RB.2
end if
endif
goto main
end.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #264 en: 10 de Marzo de 2008, 13:47:53 »
Mete la parte de los TRIS y PORT en el main. Si aun asi no funciona, modifica el IF prendiendo uno a uno los puertos.

Y otra cosa segun hyabia entendido tu querias poner el boton en RB0 y en tu programa veo que esta en RA0
"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 Moyin

  • PIC16
  • ***
  • Mensajes: 102
Re: Comenzando con Mikrobasic
« Respuesta #265 en: 10 de Marzo de 2008, 18:33:35 »
Aplanado, aqui te dejo un programita que te puede dar una idea de lo que quieres:
program Onof
' El programa enciende LED en pin RB0 del PORTB del F84
' cada vez que se presiona un pulsdor colocado en pin RB1 del PORTB.
' La activación es un cambio de 1 a 0 y espera hasta que se libere el pulsante
' es decir un cambio de 0 a 1.
dim a as byte 'esta variable se emplea solo como una condicion del ciclo While

main:
'******************************************************************************
' INICIALIZACIÓN DE PUERTOS Y PERIFÉRICOS
'******************************************************************************
     TRISB.0 = 0       ' Pin 0 del Puerto B salida
     TRISB.1 = 1       ' Pin 0 del Puerto B entrada
     a = 1
'******************************************************************************
' PROGRAMA PRINCIPAL
'******************************************************************************
     while a < 2   'Se cumple condicion siempre que a sea menor que 1
          if Button(PORTB,1,100,0) then ' Espera un pulso de 1 a 0

          'Button(port,pin, time, active_state)
          'El Parametro port especifica el puerto donde esta el boton;
          'el parametro pin es el numero del pin del puerto y va de 0...7;
          ' el parametro time es el periodo del antirebote en milisegundos;
          'el parametro active_state puede ser  0 o 1, y determina si el boton
          'esta en activo logico (1) o activo bajo (0).

             if PORTB.0 = 0 then
                SetBit(PORTB,0)       ' Si el LED estaba apagado lo enciende
             else
                ClearBit(PORTB,0)     ' Si estaba prendido lo apaga
             end if

            while PORTB.1 = 0        ' Espera sin hacer nada hasta que se
                                     ' halla liberado el pulsador
                   a = 1
            wend
          end if
     wend              ' Bucle infinito
end.
Sonrie Cristo te ama

Desconectado Aplanado

  • PIC10
  • *
  • Mensajes: 20
Re: Comenzando con Mikrobasic
« Respuesta #266 en: 10 de Marzo de 2008, 20:21:03 »
LO AGREGUE DENTRO DEL MAIN, PERO NADA :s:s:s, CON RESPECTO AL ra.0, ES EL INICIO, OSEA CUANDO YO PRESIONO ESE BOTON SE HACE ESA MINI SECUENCIA DE PARPADEO, Y LO QUE YO KIERO LOGRAR ES QUE CUANDO PRESIONE RB.0 O CUALQUIER OTRO RA SE APAGUE TODO EL PUERTO B.



main:
IF portb.0=1 then
PORTB=1 'apagas todo y mantienes el estado 1 del RB0
else
TRISB = %00000001  'declaro al puerto B como salidas salvo RB0 como ENT
TRISA = 255        'declaro el puerto A como entradas
PORTA = 0          'pongo en 0 las entradas
PORTB = 0          'pongo en 0 las salidas
if PORTA.0 = 1     'SI, puerto A.0 (inicio) esta en 1
then               'ENTONCES,
f PORTA.0 = 1 'SI, puerto A.0 esta en 1
then 'ENTONCES,
PORTB.1 = 1 'Puerto B.0 se activa
delay_ms(1200) 'Duracion de la activacion de RA.0
portb.1= 0 'Pongo a 0 RA.1
portb.2 =1 'Puerto B.2 se activa
delay_ms(1200) 'duracion de la activacion de RB.2
portb.2 = 0 'pongo a 0 RB.2
end if
endif
goto main
end.


MUCHAS GRACIAS Y LES PIDO DISCULPEN MI IGNORANCIA, SALUDOS aPLANADO!

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comenzando con Mikrobasic
« Respuesta #267 en: 10 de Marzo de 2008, 20:50:20 »
Mira segun esto el programa debe quedar asi:

En los fuses configuras CP_OFF, XT_OSC, WDT_OFF

En el programa:
Código: FreeBasic
  1. program test
  2.  
  3. main
  4. TRISB=%00000001
  5. TRISA=%11111
  6.  
  7.  INI:
  8.   'Este IF lo que hace es: "si aprietas RA1 el PORTB menos el RB0 parpadeara una vez"
  9.   IF PORTA.1=1 THEN
  10.    PORTB=%11111110
  11.    DELAY_MS(500)
  12.    PORTB=%00000000
  13.    DELAY_MS(500)
  14.   ENDIF
  15.  
  16.  'Con este if lo que hacemos es: "Si apretamos el RB0 y su estado es 1 logico se enciendan el resto del portb, si no se aprieta el    ' resto del portb se mantiene apagado. Lo pongo individual para ver que realmete afecte al pin
  17.   IF PORTB.0=1 then
  18.     PORTB.1=1
  19.     PORTB.2=1
  20.     PORTB.3=1
  21.     PORTB.4=1
  22.     PORTB.5=1
  23.     PORTB.6=1
  24.     PORTB.7=1    
  25.   ELSE
  26.     PORTB.1=0
  27.     PORTB.2=0
  28.     PORTB.3=0
  29.     PORTB.4=0
  30.     PORTB.5=0
  31.     PORTB.6=0
  32.     PORTB.7=0    
  33.   ENDIF
  34.  
  35. GOTO INI
  36. END.


Espero te sirva ese codigo.
"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 #268 en: 17 de Abril de 2008, 10:33:20 »
Hola compañeros!!!

No puedo imprimir en un lcd 20 x 4 desde el puerto a de un 18f242.

¿Alguien podria darme una mano y decirme por que?

Desde ya muchas gracias.
Nueve de Julio - Buenos Aires - Argentina

Desconectado Moyin

  • PIC16
  • ***
  • Mensajes: 102
Re: Comenzando con Mikrobasic
« Respuesta #269 en: 17 de Abril de 2008, 19:19:05 »
 :)Hola Crli, bueno antes que nada creo que con un comentario solamente poco se te puede ayudar, debes colocar código del programa para ver en que parte se encuentra el problema.

Saludos
Sonrie Cristo te ama