Ir ao conteúdo

Problema no proteus ou no meu codigo?


arh

Posts recomendados

Postado

bom dia pessoal, to estudando aqui, ai fiz um codigo que a ideia é assim, um pic transmite o valor de uma variavel via rs232, para outro pic, este pic pega o valor desta variavel, copia e exibe no display lcd, e seta o pwm. aqui to testando ele ta dando +/- certo, so que ta demorando de mais, tipo: eu aperto o botao ele demora uns +/- uns 8 seg pra aparecer no display e tal.

so que o pc que eu uso tambem nao ajuda, é uma carroça de 512mb rs. mas todos os outros programas que testei, tudo dava certinho.

segue o codigo:

transmissor:

 #include <16f628a.h>
#fuses intrc_io, nomclr, nowdt
#use delay (clock = 4000000)

#use fast_io (a)
#use fast_io (
#bit botao_1 = 0x05.0
#bit botao_2 = 0x05.1


#use rs232( baud=9600, parity=n, xmit=pin_b2, rcv=pin_b1, bits =8)



unsigned int x = 0;
void transmissor()
{
putc (x);
}

void main ()
{

set_tris_a (0xff);
set_tris_b (0b11111011);
setup_timer_1 (t1_internal|t1_div_by_8);
enable_interrupts (global);
enable_interrupts (int_timer1);
enable_interrupts (int_ext);
ext_int_edge (h_to_l);
setup_comparator (nc_nc_nc_nc);
set_timer1 (15535);
while (1)
{
//-----------------------apertando botao 1-------------------------------//

if (botao_1==0)
{
x ++;

if (x >= 10)
{
x = 10;
}
transmissor ();
do {}
while (botao_1==0);

}
//-----------------------------------------------------------------------//


//----------------------apertando botao 2--------------------------------//
if (!botao_2)
{
x --;

transmissor ();
if (x <= 0)
{
x = 0;
}

do {}
while (!botao_2);

}
//-----------------------------------------------------------------------//


}
}

receptor:

 #include <16f628a.h>
#fuses intrc_io, nowdt, nomclr
#use delay (clock = 4000000)
#use rs232 (baud = 9600, parity = n, xmit=pin_b2, rcv = pin_b1, bits=8)

#use fast_io (a)
#use fast_io (
#include <lcd_flex.c>

int receptor;
void trata_lcd()
{

printf (lcd_putc,"\freceptor = %d",receptor);
delay_ms(5);

}

void trata_pwm()
{


set_pwm1_duty(receptor * 5);
}

void main ()
{
int x;
set_tris_a (0b11110000);
set_Tris_b (0b00000011);
setup_timer_1 (t1_disabled);
setup_timer_2 (t2_div_by_1,16,1);
setup_ccp1(ccp_pwm);
lcd_init ();
setup_comparator (nc_nc_nc_nc);

lcd_gotoxy (4,1);
lcd_putc(" ola");
delay_ms(300);
while (1)
{
if(kbhit())
{
receptor = getc();
delay_ms(5);
trata_lcd();
trata_pwm();
}


}
}

alguem sabe que error é este do proteus?

v2ZZT.jpg

o arquivo do proteus:

http://www.4shared.com/file/JMSl70LE/lcd.html?

Postado

olhei aqui. e ja tinha colocado certo, deve ser meu pc mesmo, que é uma carroça.

tipo assim, se eu fizer um programa que possa queimar o chip, o proteus acusaria?

porque ai eu so dou uma simulada de leve, se nao der nada (error) eu gravo no pic e testo ao vivo

Postado

testei aqui e funcionou perfeitamente sem atrasos. Na barra de status do proteus tem um cronometro, verifique se ele está contando em tempo real. Se o cronometro estiver lento, o problema é no seu PC

Postado
Na barra de status do proteus tem um cronometro, verifique se ele está contando em tempo real. Se o cronometro estiver lento, o problema é no seu PC

deve ser meu pc então, o tempo fica saltitando, e o uso do CPU chega a 78%.

testei aqui e funcionou perfeitamente sem atrasos.

que otima noticia, tinha ficado estão frustrado achando que o problema era meu codigo.

Moley, brigadao ai cara.

valeu pessoal.

paz a todos...

  • Coordenador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!