Programa em C para McLab1

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Programa em C para McLab1

Mensagempor r.bertini » 26 Set 2008 22:23

Olá pessoal,

Alguém tem um exemplo de programação em C para a placa McLab 1 da labtools (antiga mosaico)?

Estou tentando programar com mikroC mas o programa não funciona 100%.

No projeto do mikroC eu seleciono o PIC16F628a, clock de 4MHz, Boden ON, LVP OFF, WDT OFF, MCLRE ON, HS OSC, CP OFF. Coloco a mesma configuração que fazia em Assembly.

fiz um programa de teste:
Código: Selecionar todos
void main(){
trisb=0x00;
portb=0x55;
delay_ms(1000);
portb=0x00;
}

Mas o programa acende todos os leds do portb e não faz mais nada.
Já tentei colocar somete a linha portb=0x00; e mesmo assim acende todos os leds.
Se alguém tiver um exemplo pra essa placa ficarei grato.

R.Bertini
r.bertini
Bit
 
Mensagens: 28
Registrado em: 30 Ago 2008 01:43

Mensagempor Jorge_Francisco » 26 Set 2008 23:17

Se vai usar em 4Mhz tem que colocar XT OSC. Quanto ao só acender eu não sei. Será os pull-up?
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor r.bertini » 26 Set 2008 23:47

Coloquei o XT também, mas a única diferença é que os leds ficaram mais fracos.
Vou dar uma procurada por alguma dica pra configuração dos pull ups.
Em assembly eu desabilitava os pull ups, interrupções, comparador, conversão A/D.
R.Bertini
__________________________________
#include<stdio.h>
main()
{
printf("\n R.Bertini");
}
r.bertini
Bit
 
Mensagens: 28
Registrado em: 30 Ago 2008 01:43

Mensagempor fabim » 27 Set 2008 01:31

r.bertini;
Vou dar uma dica.
Como pelo jeito você esta começando com C.
Nas configurações iniciais, onde você configurava o uC em linguagem asm, experimente fazer o mesmo em asm.
Funca +/- assim.

configs{
asm{
// coloque os comandos em asm aqui dentro
// para saber direitinho como são
// basta dar uma olhada no help
//ob's os registradores tem nome universal
// se quiser pode fazer em c mesmo, só fazer "nome do registrador = var(L)

}
}


Void main(void){
configs();

while 1{
portb = $FF
delay_ms(1000);
portb = $00;
delay_ms(1000);

}}
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Jorge_Francisco » 27 Set 2008 10:39

Bom, acho melhor fazer a configuração pela tela de edição do projeto mesmo.

Fabim, é while(1).

Vlw
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor r.bertini » 27 Set 2008 15:12

Vou tentar desse jeito fabim, as configs que eu uso são as mesmas dos programas de exemplo que tem disponivel pra download no site da labtools

são essas:
Código: Selecionar todos
MOVLW   B'00000111'
   MOVWF   CMCON      ;DEFINE O MODO DE OPERAÇÃO DO COMPARADOR ANALÓGICO

   CLRF   PORTA      ;LIMPA O PORTA
   CLRF   PORTB      ;LIMPA O PORTB

   BANK1         ;ALTERA PARA O BANCO 1
   MOVLW   B'00000100'
   MOVWF   TRISA      ;DEFINE RA2 COMO ENTRADA E DEMAIS
            ;COMO SAÍDAS
   MOVLW   B'00000000'
   MOVWF   TRISB      ;DEFINE TODO O PORTB COMO SAÍDA
   MOVLW   B'10000000'
   MOVWF   OPTION_REG   ;PRESCALER 1:2 NO TMR0
            ;PULL-UPS DESABILITADOS
            ;AS DEMAIS CONFG. SÃO IRRELEVANTES
   MOVLW   B'00000000'
   MOVWF   INTCON      ;TODAS AS INTERRUPÇÕES DESLIGADAS


Em C deve ser algo assim:
Código: Selecionar todos
cmcon=0x07;
option_reg=0x80;
intcon=0x00;


Vou tentar e posto o resultado.
Está certo Jorge, o while tem o valor entre parênteses


Funcionou!!! valeu a ajuda pessoal.
Código: Selecionar todos
/*Programa teste em C para McLab 1
uC=PIC 16F628A
Freq= 4MHz */
configs()
{
cmcon=0x07;
option_reg=0x80;
intcon=0x00;
}
void main(){
configs();
trisb=0x00;

while(1){
portb=0xFF;
Delay_ms(1000);
portb=0xAA;
Delay_ms(1000);
}}
R.Bertini
__________________________________
#include<stdio.h>
main()
{
printf("\n R.Bertini");
}
r.bertini
Bit
 
Mensagens: 28
Registrado em: 30 Ago 2008 01:43

Mensagempor fabim » 27 Set 2008 15:29

hehe. poisé.
PASCAL.

while true do
begin

ou

while 1 do

ou

while 1=0 do

ou

...........
.............
e por aí vai,,, mais o compilador me avisa... o bom é issu..rsrs
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x