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

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

Desconectado PEDRO_54K

  • PIC10
  • *
  • Mensajes: 2
Re: Comenzando con Mikrobasic
« Respuesta #330 en: 29 de Febrero de 2012, 22:44:42 »
Hola  :) soy nuevo en el foro y en el mundo de los pics, quisiera saber si me podrian ayudar con un problema que tengo al simular un programa en proteus, el problema es que RA4 no enciende y no me explico porque. el codigo en mikrobasic es el siguiente:

Citar
program ejercicio1


main:
'   Main program
trisa=%00000

PORTA.4=1
delay_ms(50)
porta.4=0
delay_ms(50)
porta.3=1
delay_ms(50)
porta.3=0
delay_ms(50)
porta.2=1
delay_ms(50)
porta.2=0
delay_ms(50)
porta.1=1
delay_ms(50)
porta.1=0
delay_ms(50)
porta.0=1
delay_ms(50)
porta.0=0
delay_ms(50)
goto main

end.

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Comenzando con Mikrobasic
« Respuesta #331 en: 01 de Marzo de 2012, 12:26:03 »
RA4 es un pin Colector Abierto. Esto significa que debes conectar una resistencia de pull-up a Vcc, lo cual te permitirá producir el 1 y 0 lógico necesario para salidas TTL.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado PEDRO_54K

  • PIC10
  • *
  • Mensajes: 2
Re: Comenzando con Mikrobasic
« Respuesta #332 en: 05 de Marzo de 2012, 19:48:01 »
RA4 es un pin Colector Abierto. Esto significa que debes conectar una resistencia de pull-up a Vcc, lo cual te permitirá producir el 1 y 0 lógico necesario para salidas TTL.

Funcionó, muchas gracias por la aclaración  :mrgreen:

Desconectado agustin280

  • PIC10
  • *
  • Mensajes: 2
ayuda con glcd 128x64 y mikrobasic
« Respuesta #333 en: 15 de Marzo de 2012, 03:01:54 »
hola amigos del foro, estoy  trabajado con un glcd 128x64 y con el compilador mikrobasic pro for pic, el problema consiste en que no puedo mostrar un valor numerico en el glcd,
ya que necesito mostrar el resultado del conversor AD  en el glcd, pense que era problema de mi conversion y decidi guardar un valor en una variable, para asi cancelar temporalmente el conversor AD y mostrar primero un valor guardado en una variable cualquiera, mi variable la denomine "t" y le cargue un valor de 10, pero a la hora de querer mostrar el nuemro 10 en el glcd solo me salen unos puntos, sinceramente no se si estoy por el camino correcto por eso necesito de su ayuda, ojala pudieran orientarme, de antemano gracias, les dejo mi codigo, un saludo cordial desde mexico.

atte: agustin nieva

Desconectado chapkaPIC

  • PIC10
  • *
  • Mensajes: 1
Re: Comenzando con Mikrobasic & EasyPIC 7
« Respuesta #334 en: 15 de Marzo de 2012, 13:49:35 »
Estimados, muy buenas.

No he encontado una consulta similar, por ello la realizo, pido disculpas si ya se hizo, y no la ví, como asimismo si no está realizada en el foro adecuado.

He comprado la EasyPic7 y soy un novato usuario de éste producto y se me presenta una duda, es correcto (según mi interpretación) que todos los pulsadores de los puertos son seteados como Pull-Up ó Pull-Down a la vez, a través del jumper J17?, o sea que si necesito en un trabajo tener entradas como 1 y 0 no me será posible.

Desde ya muchas gracias.
Saludos.

Desconectado agustin280

  • PIC10
  • *
  • Mensajes: 2
ayuda con glcd 128x64 con mikrobasic
« Respuesta #335 en: 15 de Marzo de 2012, 16:58:04 »
hola buen dia, pido disculpas, aqui les dejo mi codigo para ver si me pueden orientar en las visualizasion de una variable que contiene un numero decimal, en el glcd, he intentado pero solo me salen unos puntos en el glcd, no se por donde este mi error, si alguien pudiera ayudarme lo agradeceria por favor, este es mi codigo, el cual en una variable "t" guardo un valor de 10, deseo mostrar ese numero en el glcd, ya que lo que deseo realmente es visualizar el estado del conversor AD, pero priemro necesito empezar por visualizar una variable, de ante mano gracias.
nota: si alguien se pregunta por que coloco el numero 48 en la instruccion glcd_write_data, es por que lei que para mostrar un valor en ASCII se neceita escribir el numero 48+(la variable), no se si estoy en lo correcto, agradeceria su ayuda.



program new_example_glcd_16f877a
' Declarations section
dim GLCD_DataPORT as byte at PORTD
dim GLCD_CS1 as sbit at RC0_bit ' Conexiones del módulo Glcd
GLCD_CS2 as sbit at RC1_bit
GLCD_RS as sbit at RC2_bit
GLCD_RW as sbit at RC3_bit
GLCD_EN as sbit at RC4_bit
GLCD_RST as sbit at RC5_bit

dim GLCD_CS1_Direction as sbit at TRISC0_bit
GLCD_CS2_Direction as sbit at TRISC1_bit
GLCD_RS_Direction as sbit at TRISC2_bit
GLCD_RW_Direction as sbit at TRISC3_bit
GLCD_EN_Direction as sbit at TRISC4_bit
GLCD_RST_Direction as sbit at TRISC5_bit ' Final de conexiones del módulo Glcd

dim t as byte     'variavle t del tipo byte


main:

INTCON = 0                ' Todas las interrupciones deshabilitadas
ADCON0=%11010001
ADCON1=%00000000
TRISA = 0x00
 PORTA =0
 t= 10
 Glcd_Init()  ' Glcd_Init_EP5
Glcd_Set_Font(@font5x7, 5, 7, 32) ' Seleccionar el tamaño de fuente 5x7
Glcd_Fill(0) ' Borrar el GLCD

Glcd_Write_Text("ING. ELECTRONICA",10,0,1)
Glcd_Write_Text("GLCD Y PANEL TACTIL",10,7,1)

 Glcd_Set_Side(1)
 Glcd_Set_X(10)
 Glcd_Set_Page(4)


 Glcd_Write_data(48+t)
 

end.
 

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Comenzando con Mikrobasic & EasyPIC 7
« Respuesta #336 en: 16 de Marzo de 2012, 22:06:22 »
Estimados, muy buenas.

No he encontado una consulta similar, por ello la realizo, pido disculpas si ya se hizo, y no la ví, como asimismo si no está realizada en el foro adecuado.

He comprado la EasyPic7 y soy un novato usuario de éste producto y se me presenta una duda, es correcto (según mi interpretación) que todos los pulsadores de los puertos son seteados como Pull-Up ó Pull-Down a la vez, a través del jumper J17?, o sea que si necesito en un trabajo tener entradas como 1 y 0 no me será posible.

Desde ya muchas gracias.
Saludos.

No si conectas las entradas de pull-up del EasyPic, pero puedes conectar resitencias externas y dejar desconectadas las resistencias de Pull-up.

Lo otro que podrias hacer es realizar la inversión por software, es decir invertir la entrada que necesites sin necesidad de agregar otras resistencias al circuito.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado daniel3514

  • PIC10
  • *
  • Mensajes: 16
    • Tech Inside
Re: Comenzando con Mikrobasic
« Respuesta #337 en: 19 de Marzo de 2012, 02:15:26 »
Saludos, la duda es como se configuran en Mikrobasic lo puertos de un pic para que sean TTL, por ejemplo de 16f887, hay algo mas aya del TRIS?? gracias
Open Source: Técnicamente Viable, Económicamente Sustentable, Socialmente Justo...

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Comenzando con Mikrobasic
« Respuesta #338 en: 19 de Marzo de 2012, 12:20:26 »
Eso depende de cada PIC, por ejemplo el PIC16F887 posee ciertos pines que pueden ser utilizados como entradas analógicas o como entradas o salidas para otros módulos. Por lo tanto debes configurar esos pines como entradas digitales. Eso lo logras desactivando los módulos o configurando las entradas para esos módulos.

Debes buscar en la hoja de datos como se configura el comparador analógico y como se configura las entradas analógicas para que funcionen como entradas digitales.

por ejemplo

Código: [Seleccionar]
PORTA = 0     //Limpias todos los valores de PORTA
ANSEL = 0     //Declaras que todas las entradas son digitales
TRISA = 0x0C  //RA3 y RA2 entradas los demás pines salidas.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado alanfr

  • PIC10
  • *
  • Mensajes: 1
Re: Comenzando con Mikrobasic
« Respuesta #339 en: 07 de Mayo de 2012, 20:35:09 »
buenas gente como esta?? che pregunta media boluda que complilador usan?? :oops: :oops:

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Comenzando con Mikrobasic
« Respuesta #340 en: 07 de Mayo de 2012, 23:14:17 »
MikroBasic, MikroC, PicBasicPro, PIC-C de CCS, C18, High-tech C, C30, C32.  :D
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado Gabriel_85

  • PIC10
  • *
  • Mensajes: 2
Re: Comenzando con Mikrobasic
« Respuesta #341 en: 11 de Diciembre de 2012, 14:46:02 »
Hola amigos, soy nuevo en esto de programar en mikrobasic y necesito generar un PWM con TMR0 usando el pic 16f877A, es para comandar una un dispositivo que funciona a 50 Hz.

espero me puedan ayudar gracias...!

Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Re: Comenzando con Mikrobasic
« Respuesta #342 en: 19 de Abril de 2014, 15:01:23 »
Hola, estimados:

Me instale el Mikrobasic 3.5 para hacer unas pruebas y el 6 directo de la pagina de Mikro electronica.
El 6 directamente no me genera un COF para poder cargarlo en el ISIS, o sea no sirve
El 3.5 me genera el COF pero algunas lineas de codigo estan desfazadas con respecto a la direccion de programa. Pense que era algo menor y me puse a traducir algo que habia hecho en BASCOM porque BASCOM me ocupa mucha Flash (casi 4k). La cuestion de fondo es que me canse de leer y se complicaba hasta cargar una valor al TIMER1, sin tener que recurrir a los PDF para accesar a la direccion directamente.

En fin, a la par que hacia la traduccion y veia como acomodar todo, hice un par de pruebas, y solo me funciono una. Luego algo supersimple ya no me cargo ni valores en variables (si lo simulo en el simulador incorporado anda, pero en Proteus NO, nunca carga nada en las locaciones de memoria).

Arriba de esto solo tengo los DIM de cada variable y un Symbol y Const pero los deshabilite a ver si era eso y nada.
En este ejemplo T_ON nunca se carga con nada, el LCD si me tira el dato y el led cambia de estado, hasta que se inicializa el timer y obviamente como no carga valores se queda chimuelo y me salen mensajes de Proteus variables.

Me da bronca porque perdi casi 2 dias con esto y algo basico no lo simula. Espero sus opiniones o consejos, saludos. Me baje tambien el COFMaker pero me parecio muy enredado y lo desinstale.

Main program
    T_on = 10
    T_off = 50
    DDRC=%11111111
    Lcd_Init()                        ' Initialize LCD
    Lcd_Cmd(_LCD_CLEAR)               ' Clear display
    Lcd_Cmd(_LCD_CURSOR_OFF)          ' Cursor off
    led_ton=1
    LCD_Out(1,2,"Hello World 04")                 ' Write text in first row
    Delay_ms(1000)
    led_ton=0

    inicializar
    inittimer1
end.

Desconectado akira_ve

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 342
Re:Comenzando con Mikrobasic
« Respuesta #343 en: 22 de Agosto de 2016, 12:46:28 »
buenos dias amigos............estoy comenzando en este programa ( MikroBasic) comenze con cosas sensillas y me fue bien pero al entrar en el tema de los TMRX jajaj se me trancoel serrucho, probe con un rrigrama de ejemplo que esta en el mismo programa, lo modifique para que funcionara con el pic qe me interesa usar el 18F2K20 y no funciona.....he revisado y nada el TMR0 no funciona.........espero me ayuden........a salir de mi ignorancia jajajajajprogram TMR0
' *
' * Project name:
'     Timer0_Interrupt (Using Timer0 to obtain interrupts)
' * Copyright:
'     (c) Mikroelektronika, 2008.
' * Revision History:
'     20081218:
'       - initial release
' * Description:
'     This code demonstrates how to use Timer0 and it"s interrupt.
'     Program toggles LEDs on PORTB.
' * Test configuration:
'     MCU:             PIC18F87J60
'     Dev.Board:       LV18FJ
'     Oscillator:      HS, 25.0000 MHz
'     Ext. Modules:    -
'     SW:              mikroBasic PRO for PIC
' * NOTES:
'     - Turn on diodes on PORTB.
' *
dim counter as word
dim Tem as byte

sub procedure Interrupt()
  if (TMR0IF_bit <> 0) then
    Inc(counter)                ' Increment value of counter on every interrupt
    TMR0L  = 96
    TMR0IF_bit = 0              ' clear TMR0IF
  end if
end sub

main:
  ' CMCON  = CMCON or 0x07        ' turn off comparators
  ' ADCON1 = ADCON1 or 0x0F       ' turn off analog inputs

  counter = 0                   ' Initialize counter
  TRISB = 0                     ' PORTB is output
  PORTB = 0xFF                  ' Initialize PORTB

  T0CON  = %10000000            ' 0xC4  Set TMR0 in 8bit mode, assign prescaler to TMR0
  INTCON = %11100000            ' 0xC0 Set GIE, PEIE
  TMR0IE_bit = 1                ' Enable TMRO interrupt
  PIE1.TMR1IE = 1
  while TRUE                   ' endless loop
    if (counter > 1250) then
      PORTB = not PORTB         ' Toggle PORTB LEDs
      counter = 0               ' Reset counter
    end if
  wend
end.
Si conocemos bien lo que tenemos y lo sabemos usar......se haran hasta cosas que e veces aseguran son imposibles

Venezuela

Desconectado akira_ve

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 342
Re:Comenzando con Mikrobasic
« Respuesta #344 en: 23 de Agosto de 2016, 15:12:25 »
Cambie de PIC y pasa lo mismo y consegui este otro programa en una version 7.0.0.2 de Mikrobasic y lo revise y ajuste y quedo asi el programa


' *
' * Project name
'     TMR0 (Simple 'Hello World' demonstration of interrupt handling)
' * Copyright:
'     (c) mikroElektronika, 2008
' * Revision History:
'     20080225:
'       - initial release.
' * Description
'     This code demonstrates using interrupts and TMR2. Program toggles LEDs on
'     PORTB and PORTD each second.
' * Test configuration
'     MCU:            P16F887
'     Dev.Board:      EasyPIC5
'     Oscillator:     HS, 08.0000 MHz
'     Ext. Modules:   -
'     SW:             mikroBasic v7.1
' * NOTES
'     None.
' *

program TMR0

dim cnt as word

sub procedure interrupt
  Inc(cnt)                ' Increment value of cnt on every interrupt
  TMR0   = 96
  INTCON = %11100000      ' $20 Set T0IE, clear T0IF
end sub

main:
  OPTION_REG = %10000000  ' $84 Assign prescaler to TMR0
  ANSEL  = 0              ' Configure AN pins as digital I/O
  ANSELH = 0
  TRISB = 0               ' PORTB is output
  PORTB = $FF             ' Initialize PORTB
  TMR0  = 96              ' Timer0 initial value
  INTCON = %11100000      ' $A0 Enable TMRO interrupt
  cnt = 0                 ' Initialize cnt

  while TRUE
    if (cnt = 400) then
      PORTB = not PORTB      ' Toggle PORTB LEDs
      cnt = 0             ' Reset cnt
    end if
  wend
end.

ejecute la depuracion en Mikrobasic y solo veo el ultmo ciclo while funcionar nada mas
pero por casualidad lo simule en Proteus.........y si funciona................entonces por que esto
no se ve funcionar al depurarse en MikroBasic...............estoy todo confundido amigos
Si conocemos bien lo que tenemos y lo sabemos usar......se haran hasta cosas que e veces aseguran son imposibles

Venezuela