Página 1 de 2

Compilador mikroBasic for PIC

MensagemEnviado: 23 Jun 2008 11:54
por welltom
Bom dia, colegas estou precisando do compilador mikroBasic for PIC
versão 4, no site do fabricante só encontrei a versão mais atual (7),
que não quer compilar os meus programas (PIC + LCD), tanto para
o microcontrolador PIC16F628A e PIV16F877A), se alguem tiver e
quiser me enviar ou informar algun link que eu possa baixar ficarei
muito grato Obrigado!
Att.
Wellington
w-anselmo@bol.com.br

mikrobasic

MensagemEnviado: 04 Set 2008 23:50
por mkpic
Prezado Colega, conseguiu compilar o seu programa com o mikrobasic?
Estou pensando em praticar um pouco com ele, pois estou tendo dificuldades em desenvolver projetos com o assembler.

Att.

MensagemEnviado: 05 Set 2008 08:38
por otavio luiz
Não quer compilar não seria pela limitação dele??? Normalmente são compativeis os códigos, a cada versão só retiram bugs e adicionam lib's.

MensagemEnviado: 07 Set 2008 12:25
por mkpic
Eu estou tendo dificuldade em conseguir fazer o programa em MikroBasic funcionar no PIC.

Em assembler funciona o programa que tenho para interface com o display, funciona normalmente e é o mesmo circuito, só que com o programa em Mikrobasic ele compila normalmente, mas o PIC "não roda" o programa, e fica com os caracteres acendidos na primeira linha do display 16x2.

O que será que estou esquecendo de fazer? Coloca as mesmas configurações e configuro para o mesmo clock.

PIC16f628a

Programa em mikrobasic, simulando pelo Proteus ele também não executa. Certamente estou esquecendo de algo...

Imagem

program mkpic

Main:
trisb=0
trisa=0
LCD8_Config(PORTA, PORTB, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0)
LCD8_Init(PORTA,PORTB)

loop_principal:
lcd8_cmd(LCD_CLEAR) ' limpa o display
LCD8_Out(1,1,"teste") ' escreve um texto no lcd

end.

MensagemEnviado: 08 Set 2008 09:41
por otavio luiz
LCD8_Config(PORTA, PORTB, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0) "esta linha voce escreveu assim
LCD8_Config(PORTA, PORTB, 2, 1,0, 7, 6, 5, 4, 3, 2, 1, 0)" se não me engano pelo help do mikrobasic seria assim mudando as linhas de RW e E

MensagemEnviado: 08 Set 2008 11:08
por mkpic
Prezado Otavio, obrigado pela ajuda. Mas não deu resultado.
Inclusive ja tinha até tentado tudo que é tipo de combinação na entrada.
Não tem geito de rodar o programa.

estou usando nas configurações do project:
_LVP_OFF
_MCLRE_OFF
_BODEN_OFF
_CP_OFF
_PWRTE_OFF
_WDT_OFF
_INTOSC_OSC_NOCLKOUT

No forum da mikrobasic, vee dicas como colocar antes do MAIN:

CMCON = 7

E até mesmo de tirar a linha:

LCD8_Init(PORTA,PORTB)

Mas nada deu resultado.
Sei que deve ser um detalhe minimo, pra variar, como sempre.

Tenho aqui o circuiuto na protoboard e também rodo ele no proteus 7.2
Posso passar os arquivos, assim você pode simular virtualmente os codigos.

Queria mexer com o MikroBasic justamente para ser algo mais facil e esta sendo totalmente ao contrário, pois com o mesmo circuito e com a linguagem em assembler ja consigo escrever no display normalmente. mas quero algo bem pratico e rapido como o Basic é pra ser. Depois, é claro, penso em me aprofundar em C e Assembler, mas por enquanto quero só brincar com o PIC.... Obrigado e desculpem-me pelo texto enorme.

MensagemEnviado: 08 Set 2008 11:18
por otavio luiz
Bom, começe do 0 novamente.
no esquema que voce postou a linha do lcd8_config tem que ficar como eu esquevi, isto é tem que trocar as linhas RW e E de acordo com o programa, agora no proto board como está??? Esta conforme o esquema???
fazer CMCON=7 tem que fazer mesmo que os pinos estejam sendo usados como saida, isto evita sérios problemas. Dica confira a ligação do lcd do protoboard com o esquema elétrico pra ver se esta tudo certo.

MensagemEnviado: 08 Set 2008 11:59
por mkpic
Prezado Otavio, vou verificar e fazer as alterações que informou.

Uma dúvida?
Se esta tudo funcionando com o assembler, não deveria também funcionar com o MikroBasic? Ou necessariamente o esquema eletrico do hardware tem que mudar pelo fato de eu estar usando outra linguagem??
Pensei que não houvesse essa necessidade, visto que ambas linguagens são convertidas para o hexadecimal e assim sendo interpretado pelo PIC??

Desculpe pela dúvida cruel.
Att.

MensagemEnviado: 08 Set 2008 12:12
por otavio luiz
assembler é assembler, basic é basic, quem diz que os dois etão corretos, o assembler esta correto por isso funciona, se em basic não funciona é porque não esta correto caso contrário estaria funcionando.
Verifica em asm os pinos que estão sendo utilizados depois verifica se a configuração está exatamente igual em basic, uma informação errada e já era.

MensagemEnviado: 08 Set 2008 12:21
por mkpic
codigo em assembler das portas em assembler:

#DEFINE bank0 BCF STATUS,RP0 ;seta banco 0 da memória
#DEFINE bank1 BSF STATUS,RP0 ;seta banco 1 da memória

PICRES equ 0x00
PICRAM equ 0x20
LCD_CNTL equ PORTA ;port de controle para display
LCD_DATA equ PORTB ;port de dados para o display
E equ 0x00 ;controles do display
RS equ 0x02 ;porta A
RW equ 0x01

MensagemEnviado: 12 Set 2008 17:00
por microcontrolador.pic
Olá amigo,
Eu tive um problema similar ao seu.

O compilador Mikrobasic nas versões 4 e anteriores, não necessitava ligar o pino RW do display no microcontrolador.
Já das versões 5 até a 7.0.0.2 precisa.

(isto usando a interface de 4 bits do display)

Pode ser isto o problema.

MensagemEnviado: 23 Set 2008 10:41
por fabim
LCD8_Config(PORTA, PORTB, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0)
LCD8_Init(PORTA,PORTB)

o primeiro é para você configurar qual pino é qual
o segundo é para usar os pinos fixos

você esta configurando corretamente para seu hardware, logo em seguida esta configurando para a liby com pinos fixos..

num funfa mesmo.
ou é o primeiro e apenas o rimeiro, conforme o seu hardware.
ou é o segundo para usar a pinagem fixa da liby.

Não precisa se preocupar em configurar como entrada ou saida, o procedimento ja faz tudim suzim.

Nem tinha visto esse post, ainda foi um amigo novo aqui no forum que observou isto.

Abraços

Basorte

MensagemEnviado: 23 Set 2008 11:10
por mkpic
Prezado Fabim, obrigado pelo retorno.

Havia percebido isto após ler o help do mikrobasic,
que alias, recomendo para todos que estão iniciando como eu.

Outro detalhe, para que eu podesse escrever na segunda linha do display, no primeiro ciclo do programa, tinha que inicializar duas vezes com o LCD8_Config(PORTA, PORTB, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0).

Pelo que lee, ísso é coisa do display mesmo....

Agora ja estou usando 4bits e nessa forma o meu lcd não precisa inicializar duas vezes, de vagar e sempre, to entendendo como as coisas funcionam.

To apanhando é pro assembler, mas o maior problema mesmo é a falta de tempo e só por isso parti pro BASICo.

Att.

MensagemEnviado: 23 Set 2008 11:16
por fabim
CERTO,,, e você esta utilizando dois log´s diferentes aqui no forum ?
mkpic.
welltom.

Ou estou meio doido ?

Fabim

MensagemEnviado: 23 Set 2008 11:28
por mkpic
acho que você deve estar chapado.
eu só usei o post do welton, porque achei mais prodente
colocar a minha duvida em post ja criado com o assunto semelhante.

Apenas para não criar mais 1 post, com uma duvida simples e que creio eu seria o mesmo problema do welton, pois eu utilizo o mickrobasic 7.2 e os meus programas estao rodando perfeitamente no pic16f628a.

Como de custume, antes de perguntar eu pesquisei e como achei o assunto relacionado, postei aqui mesmo...