Ir ao conteúdo

Como usar #_user fast_io e #user fixed_io


chacalgbi

Posts recomendados

Postado

Olá pessoal, quem souber ai dê uma rápida explicada nessas funções:

1° user standard_io(B):

2° use fast_io(B):

3° use fixed_io(?):

4° set_tris_B(???)

Elas servem para todos os PORTs ou só para o B?

Programo e C, compilador CCS.

Abraço!

Postado

Todos os ports.

fast_io(B):

Define que voce vai setar a direção dos pinos como entrada e saida manualmente.

Isso deixa o código muito eficaz e evita que o compilador decida a hora de trocar os pinos como entrada ou saida.

fast_io() evita que o compildora encha o código de MOVLW '00001111', MOVWF TRIS a toda hora.

Postado
então como seria a configuração?

Se eu quisesse só o B0 como entrada (interrupção) e o resto como saída.

use assim:


#use Fast_io (

void main ()
{
set_tris_b (0b00000001); // aqui voce vai colocar qual é entrada e saida
}

lembrando que

1 = entrada

e

0 = saida

olha um exemplo de um codigo que to fazendo aqui, eu usei o fast_io no A e B

#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()
{
int x = 5;
set_pwm1_duty(x * 5);
}

void main ()
{

set_tris_a (0b11110000); // aqui to definindo o port a
set_Tris_b (0b00000011); // aqui to definindo o port b
setup_timer_1 (t1_disabled);
setup_timer_2 (t2_div_by_1,58,1);
setup_ccp1(ccp_pwm);
lcd_init ();
setup_comparator (nc_nc_nc_nc);
set_pwm1_duty(0);
delay_us(30);
while (1)
{
if(kbhit())
{
receptor = getc();
delay_ms(5);

switch (receptor){

case 1:
trata_lcd();
break;

case 2:

trata_lcd();
trata_pwm();
break;




}

}


}
}

1° user standard_io(B):

este é o modo padrão, sem voce colocar fixo ou fast, ele fica configurado ja como standard

Postado

E o user standard_io(B) e o use fixed_io ??

o standard evita de voce ter que ficar setando os pinos como entrada e saida, o proprio compilador faz isto, mas tem o porém que o vtrx ja disse.

o modo fixed eu nunca usei. mas para usalo tambem, voce tera que setar os pinos como entrada ou saida tambem, utilizando o set_tris_X (0bxxxxxxxx);

Postado
Todos os ports.

Define que voce vai setar a direção dos pinos como entrada e saida manualmente.

Isso deixa o código muito eficaz e evita que o compilador decida a hora de trocar os pinos como entrada ou saida.

fast_io() evita que o compildora encha o código de MOVLW '00001111', MOVWF TRIS a toda hora.

Então será que usando essas diretivas, em um código mais complexo, dá pra economizar espaço na ROM também? Ou é só para ficar mais veloz e eficaz?

  • 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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!