www.microgenios.com.br

Microgenios | Fórum
Hoje é Seg Jul 28, 2014 2:23 pm

Todos os Horários estão como UTC - 3 horas [ DST ]




Criar novo tópico Responder Tópico  [ 16 Mensagens ]  Ir para a página 1, 2  Próximo
Autor Mensagem
 Assunto do Tópico: erro ao compilar 16f877a
MensagemEnviado: Sex Dez 30, 2011 7:14 am 
Offline

Data de registro: Qui Dez 29, 2011 7:58 am
Mensagens: 5
olá! quando eu vou compilar dá erro,

0 304 C:/Arquivos de programas/Mikroelektronika/mikroC PRO for PIC/Examples/lcdfunc.c:7: error: Can't open include file "main.h"[/color] [/color][/color]

0 304 C:/Arquivos de programas/Mikroelektronika/mikroC PRO for PIC/Examples/lcdfunc.c:8: error: Can't open include file "mod_lcd.c"

0 304 2 errors in preprocessor.

0 102 Finished (with errors): 29 dez 2011, 07:45:39 lcdfunc.mcppi

sempre dá erro , posso pegar um projeto pronto e copiar para o mikroc, ele nao compila
ja abilitei todas as caixas do library, e nao resolve.


setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

lcd_ini(); // Inicializa o LCD
lcd_escreve ('\f'); // limpa o display

// Função lcd_escreve
//lcd_escreve ("PICTRONICS");

// Imprime menssagem no LCD com a função printf
printf (lcd_escreve, "PICTRONICS");

int conta = 0; // Variavel de contagem

while (true) // Enquanto (true) faça
{
lcd_pos_xy (1, 2); // Posiciona cursor no LCD
printf (lcd_escreve, "Conta: %3u.", conta); // Imprime texto no LCD
if (conta != 100) // Testa se variável conta não igual a 100
conta++; // Se não incrementa variável conta
else // Senão (conta = 100)
conta = 0; // Zera variável conta (conta = 0)
delay_ms (50); // Espera 100 ms
}
}

/* Funções importantes da biblioteca mod_lcd

lcd_ini() // Inicializa LCD
lcd_pos_xy( byte x, byte y) // Posição de texto x, y
lcd_escreve( char c) // Função de escrita no LCD
*/

por exemplo esse deu erro.
alguem pode me ajudar?
valeu!!!!


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Sex Dez 30, 2011 3:03 pm 
Offline

Data de registro: Sex Dez 30, 2011 2:53 pm
Mensagens: 14
Localização: Fortaleza - CE
Os comandos iniciais do seu programa não parecem ser os usados pelo MikroC

setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

Esses comandos são utilizados com bibliotecas do Compilador CCS. Se forem, você terá que
"traduzir" ou converter para a Linguagem C utilizada pelo Compilador MikroC.


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Sex Dez 30, 2011 8:36 pm 
Offline

Data de registro: Qui Dez 29, 2011 7:58 am
Mensagens: 5
então o programa criado no mikroc só funciona no mikroc ?
mas eu ja peguei outro codigo, o cara tava fazendo e compilando no mikroc, com ele funciona, apresentado no youtube.

valeu!!! vou continuar tentando!


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Seg Jan 02, 2012 3:05 pm 
Offline

Data de registro: Qui Jan 07, 2010 6:32 pm
Mensagens: 171
Localização: BRASIL
Olá Paulo

Ao utilizar comandos típicos da linguagem ANSI C, como if while for etc, todos os compiladores disponíveis aceitam e vão compilar. Exemplo
void main (void)
{
int a, b, c;
d=10;
if (a>b)
{
c++;
}
else d--;
}
Esse código vc pode colocar em qualquer compilador que este aceitará. Contudo, se vc colocar funções específicas do compilador MikroC no seu projeto e tentar compilar no GCC, o GCC vai acusar erro.

Espero que tenha ajudado a clarear as idéias.

Sugiro dar uma olhado nesse link da Microgenios para poder aprender mais sobre a linguagem ANSI C.
http://www.portalwebaula.com.br/website ... Itemid=142

Abraço


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Seg Jan 02, 2012 3:30 pm 
Offline

Data de registro: Sex Dez 30, 2011 2:53 pm
Mensagens: 14
Localização: Fortaleza - CE
Paulo,

Programas feitos no Compilador MikroC que utilizam suas bibliotecas só funcionam
com MikroC. Assim como os feitos utilizando bibliotecas do CCS. No trecho de código
que colocaste observe no último comentário

/* Funções importantes da biblioteca mod_lcd

lcd_ini() // Inicializa LCD
lcd_pos_xy( byte x, byte y) // Posição de texto x, y
lcd_escreve( char c) // Função de escrita no LCD
*/


ele referencia uma biblioteca mod_lcd.c
esta biblioteca não é do CCS, está em um livro de Programação C cujo o Autor é Fabio Pereira.
Sem esta biblioteca não é possivel compilar o programa sem erro.

Compilei o código apresentado por você utilizando a referida biblioteca e ficou assim:

#include <16f877a.h>
#use delay(clock=4000000)
#fuses HS,NOWDT,PUT
#include "mod_lcd.c" // Esta biblioteca deve está no mesmo diretorio do Projeto

int conta = 0; // Variavel de contagem
void main()
{
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
//setup_comparator(NC_NC_NC_NC);
// setup_vref(FALSE);

lcd_ini(); // Inicializa o LCD
lcd_escreve ('\f'); // limpa o display

// Função lcd_escreve
//lcd_escreve ("PICTRONICS");

// Imprime menssagem no LCD com a função printf
printf (lcd_escreve, "PICTRONICS");



while (true) // Enquanto (true) faça
{
lcd_pos_xy (1, 2); // Posiciona cursor no LCD
printf (lcd_escreve, "Conta: %3u.", conta); // Imprime texto no LCD
if (conta != 100) // Testa se variável conta não igual a 100
conta++; // Se não incrementa variável conta
else // Senão (conta = 100)
conta = 0; // Zera variável conta (conta = 0)
delay_ms (50); // Espera 100 ms
}
}

/* Funções importantes da biblioteca mod_lcd

lcd_ini() // Inicializa LCD
lcd_pos_xy( byte x, byte y) // Posição de texto x, y
lcd_escreve( char c) // Função de escrita no LCD
*/

Mas esse só código funciona no Compilador CCS.

Jorge_65535


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Ter Jan 03, 2012 7:30 am 
Offline

Data de registro: Qui Dez 29, 2011 7:58 am
Mensagens: 5
MAS COMO EU VOU SABER COM QUAL PROGRAMA O CODIGO FOI ESCRITO,POR EXEMPLO ESSE,
NO MIKROC E NO MPLAB DA ERRO JA NO #INCLUDE, NÃO ACHA O ARQUIVO, VALEU PELA FORÇA!

#include <16f877a.h>
#include <regs_16f87x.h>
#device adc=10
#use delay(clock=10000000)
#fuses HS,NOWDT,PUT,NOLVP,BROWNOUT,NOLVP,NOCPD
#include <mod_lcd.c>
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
//////////////////////////////////////////////Declaração de variáveis///////////////////////////////////////////////
//Temperaturas
int16 temp_atual;
int16 temp_atual_media;
int temp_alvo = 40;
int temp_alvo_max = 50;
int temp_alvo_min = 30;
//Controlado Proporcional-Integral
int16 Kp = 191; //Ganho proporcional
int16 Ki = 149; //Ganho integral
signed int16 erro = 0; //Erro
signed int16 erro1 = 0; //Erro anterior
signed int16 ciclo_s=0; //Saída do controlador
//LCD
int config = 0; //Tela atual
int posicao; //Posição atual do cursor
int posicaoM; //Máxima posição possível para o cursor
int velocidade = 0; //Valor percentual do duty cicle
//PWM
int16 ciclo=0; //Duty cicle
//ADC
int16 valor; //Valor lido
int16 valor_medio; //Valor médio dos valores lido
int16 matriz_valores[10]; //Matriz para salvar valores lido
//Timer 1
int8 contaT1_1 = 0;
int8 contaT1_2 = 0;
48
//Estado dos botões
boolean botao_up = 0;
boolean botao_down = 0;
boolean botao_left = 0;
boolean botao_right = 0;
//Variáveis de uso geral
int16 temp1; //Variável temporária de uso geral
int16 temp2; //Variável temporária de uso geral
///////////////////////////////////////////Tratamento das interrupções///////////////////////////////////////////
//////////////////////////////////////////////////////////Timer 1//////////////////////////////////////////////////////////
#int_timer1
void trata_t1 ()
{
// reinicia o timer 1 em 3036 mais a contagem que já passou
set_timer1(3036 + get_timer1());
contaT1_1 += 1;
If (contaT1_1 == 5) //Se já passou um segundo:
{
//LCD
If (config == 0)
{
lcd_pos_xy(10,1);
If (temp_alvo<10) printf (lcd_escreve," ");
else if (temp_alvo<100) printf (lcd_escreve," ");
printf (lcd_escreve,"%u",temp_alvo);
lcd_pos_xy(10,2);
If (temp_atual/10<10) printf (lcd_escreve," ");
else if (temp_atual/10<100) printf (lcd_escreve," ");
printf (lcd_escreve,"%lu.%lu",(temp_atual/10),temp_atual%10);
}
Else If (config == 3)
{
velocidade = ((int32)ciclo*100)/1023;
lcd_pos_xy(13,1);
If (velocidade<10) printf (lcd_escreve," ");
else if (velocidade<100) printf (lcd_escreve," ");
printf (lcd_escreve,"%u",velocidade);
lcd_pos_xy(10,2);
If (temp_atual/10<10) printf (lcd_escreve," ");
else if (temp_atual/10<100) printf (lcd_escreve," ");
printf (lcd_escreve,"%lu.%lu",(temp_atual_media/10),temp_atual_media%10);
}
49
//ADC
valor = read_adc(); //Efetua a conversão A/D
matriz_valores[contaT1_2] = valor;
// O escalonamento é realizado da seguinte forma:
// resultado = (1500 * valor lido) / 1023
// simplificando:
// resultado = valor + (valor * 159) / 341
// Repare que é necessário converter a segunda parte da
// equação para 32 bits para que o compilador efetue o
// cálculo corretamente
temp_atual = valor + ((int32)valor* 159)/341;
contaT1_2 += 1;
contaT1_1 = 0;
}
If (contaT1_2 == 10) //Se já passou dez segundos:
{
//PID
//Calculo do valor médio da temperatura lida durante os últimos 10 segundos
valor_medio = 0;
For (temp1 = 0; temp1 < 10; temp1++) valor_medio += matriz_valores[temp1];
valor_medio /= 10;
temp_atual_media = valor_medio + ((int32)valor_medio * 159)/341;
//Calculo do erro
erro = (signed int16)temp_alvo*10 - (signed int16)temp_atual_media;
//Controle proporcional-integral
ciclo_s = ciclo_s + (((signed int32)Ki*erro1) - ((signed int32)Kp*erro));
// teste de extrapolação de valores
if (ciclo_s>1023) ciclo_s=1023;
If (ciclo_s<0) ciclo_s=0;
//Salva valores para o próximo ciclo
ciclo = ciclo_s;
erro1 = erro;
//PWM
set_pwm1_duty (ciclo); // Configura o ciclo ativo
setup_timer_2 (T2_DIV_BY_16, 255, 1); //Frequência de oscilação igual a 10MHz /
4 / 16 / (255 + 1) = 610 Hz
contaT1_2 = 0;
}
}
50
/////////////////////////////////////////Mudança de estado na porta B/////////////////////////////////////////
#int_rb
void Botoes ()
{
//Carrega estado dos botões
botao_up = input(pin_b5);
botao_down = input(pin_b6);
botao_left = input(pin_b4);
botao_right = input(pin_b7);
If (botao_up) //BOTÃO UP
{
Switch (config)
{
Case 0:
If (temp_alvo<temp_alvo_max) temp_alvo += 1; //Se botão UP for precionado e
a temperatura alvo for menor que a máxima, incrementa a temperatura alvo.
Break;
Case 1:
temp1 = 1;
for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10;
If (temp_alvo_max+temp1<150)
{
temp_alvo_max += temp1;
}
else temp_alvo_max = 150;
lcd_pos_xy(1,2);
If (temp_alvo_max<10) printf (lcd_escreve,"00");
else if (temp_alvo_max<100) printf (lcd_escreve,"0");
printf (lcd_escreve,"%u",temp_alvo_max);
lcd_pos_xy(posicao,2);
Break;
Case 2:
temp1 = 1;
for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10;
If (temp_alvo_min+temp1<temp_alvo_max)
{
temp_alvo_min += temp1;
}
else temp_alvo_min = temp_alvo_max;
lcd_pos_xy(1,2);
If (temp_alvo_min<10) printf (lcd_escreve,"00");
else if (temp_alvo_min<100) printf (lcd_escreve,"0");
printf (lcd_escreve,"%u",temp_alvo_min);
51
lcd_pos_xy(posicao,2);
Break;
}
}
else If (botao_down) //BOTÃO DOWN
{
Switch (config)
{
Case 0:
If (temp_alvo>temp_alvo_min) temp_alvo -= 1; //Se botão DOWN for
precionado e a temperatura alvo for maior que a mínima, deincrementa a temperatura
alvo.
Break;
Case 1:
temp1 = 1;
for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10;
If (temp_alvo_max>temp1)
{
temp_alvo_max -= temp1;
}
else temp_alvo_max = 0;
lcd_pos_xy(1,2);
If (temp_alvo_max<10) printf (lcd_escreve,"00");
else if (temp_alvo_max<100) printf (lcd_escreve,"0");
printf (lcd_escreve,"%u",temp_alvo_max);
lcd_pos_xy(posicao,2);
Break;
Case 2:
temp1 = 1;
for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10;
If (temp_alvo_min>temp1)
{
temp_alvo_min -= temp1;
}
else temp_alvo_min = 0;
lcd_pos_xy(1,2);
If (temp_alvo_min<10) printf (lcd_escreve,"00");
else if (temp_alvo_min<100) printf (lcd_escreve,"0");
printf (lcd_escreve,"%u",temp_alvo_min);
lcd_pos_xy(posicao,2);
Break;
}
}
else If (botao_left && botao_right) //BOTÃO CONFIG
{
lcd_envia_byte(0,0x0C);
52
config+=1;
If (config>2) config=0;
Switch (config)
{
Case 0:
lcd_escreve("\f");
printf (lcd_escreve,"Alvo: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
printf (lcd_escreve,"\nAtual: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
delay_ms (2);
If (temp_alvo>temp_alvo_max) temp_alvo=temp_alvo_max;
If (temp_alvo<temp_alvo_min) temp_alvo=temp_alvo_min;
Break;
Case 1:
lcd_escreve("\f");
printf (lcd_escreve,"Temp Maxima:\r");
If (temp_alvo_max<10) printf (lcd_escreve,"00");
else if (temp_alvo_max<100) printf (lcd_escreve,"0");
printf (lcd_escreve,"%u",temp_alvo_max);
lcd_escreve(0xDF);
lcd_escreve(0x43);
lcd_envia_byte(0,0x10);
lcd_envia_byte(0,0x10);
lcd_envia_byte(0,0x10);
lcd_envia_byte(0,0x0F);
delay_ms (2);
posicao = 3;
posicaoM = 3;
Break;
Case 2:
If (temp_alvo_min>temp_alvo_max) temp_alvo_min=temp_alvo_max; //Se
a temperatura alvo máxima for menor que a mínima, a mínima e recebe o valor da
máxima.
lcd_escreve("\f");
printf (lcd_escreve,"Temp Minima:\r");
If (temp_alvo_min<10) printf (lcd_escreve,"00");
else if (temp_alvo_min<100) printf (lcd_escreve,"0");
printf (lcd_escreve,"%u",temp_alvo_min);
lcd_escreve(0xDF);
lcd_escreve(0x43);
lcd_envia_byte(0,0x10);
lcd_envia_byte(0,0x10);
lcd_envia_byte(0,0x10);
lcd_envia_byte(0,0x0F);
delay_ms (2);
53
posicao = 3;
posicaoM = 3;
Break;
}
}
else If (botao_right || botao_left) //BOTÃO RIGHT
{
If (config == 0)
{
lcd_escreve("\f");
printf (lcd_escreve,"Exaustor: 0");
lcd_escreve(0x25);
printf (lcd_escreve,"\nTemp: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
config = 3;
}
Else If (config == 3)
{
lcd_escreve("\f");
printf (lcd_escreve,"Alvo: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
printf (lcd_escreve,"\nAtual: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
config = 0;
}
else If (botao_left && config!=0) //BOTÃO LEFT
{
If (posicao>1)
{
lcd_envia_byte(0,0x10);
posicao -= 1;
}
}
else If (botao_right && config!=0) //BOTÃO RIGHT
{
If (posicao!=posicaoM)
{
lcd_envia_byte(0,0x14);
posicao += 1;
}
}
}
}
54
///////////////////////////////////////////////////Rotina principal/////////////////////////////////////////////////////
main()
{
//Configuração do PWM
setup_ccp1 (CCP_PWM); //Configura CCP1 para modo PWM
// Configuração do ADC
setup_ADC_ports (AN0_AN1_VSS_VREF); //AN0 e AN1 como entradas analógicas
e VREF+ no pino RA3
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0); //Seleciona a entrada AN0
//Configuração de I/Os
porta = 0x00;
portb = 0x00;
portc = 0x00;
portd = 0x00;
porte = 0x00;
set_tris_a(0b11111111); //1-pino entrada 0-pino saida
set_tris_b(0b11110000);
set_tris_c(0b10000000);
set_tris_d(0b00000000);
set_tris_e(0b00000000);
//Configuração do LCD
lcd_ini();
delay_ms (2); // aguarda 2 ms
printf (lcd_escreve,"Alvo: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
printf (lcd_escreve,"\nAtual: 0.0");
lcd_escreve(0xDF);
lcd_escreve(0x43);
//Configuração do Timer 1
setup_timer_1( T1_INTERNAL | T1_DIV_BY_8 ); //configura o timer 1 para clock
interno e prescaler dividindo por 8
set_timer1(3036); //inicia o timer 1 em 3036 - Frequência igual a 10MHz / 4 / 8 /
(65536 - 3036) = 5 Hz
//Habilita interrupções
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_RB); // Libera as interrupções por mudança de estado no Port
B = Pinos B4 -> B7
enable_interrupts(GLOBAL); // Libera o registrador de interrupção global e permite
que as interrupçoes funcionem
55
//Inicia loop infinito
while (true)
{
}
}


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Ter Jan 03, 2012 11:46 am 
Offline

Data de registro: Sex Dez 30, 2011 2:53 pm
Mensagens: 14
Localização: Fortaleza - CE
Depois de algum tempo praticando dá pra reconhecer quem é quem.
Este código que você colocou no MikroC não daria certo por ele usar bibliotecas que são próprias
do CCS C. No CCS C também ele não compila provavelmente porque o compilador não
consegue encontrar a biblioteca denominada mod_lcd.c.

Sobre o Primeiro Código que colocaste no MikroC ficou assim:
Código:

/*
    Compiler: MikroC
    Device: PIC16F877A
    Cristal: 4MHz
   
    Pinos Ligados ao Display 16 x 2
    D7 ? portd.7
    D6 ? portd.6
    D5 ? portd.5
    D4 ? portd.4
    E  ? portd.3
    RS ? portd.2
    RW ? portd.0
*/

char *txt, tnum[4];
char conta = 0;
void main()
{
  TRISD = 0X00;
  PORTD = 0X00;
  ADCON1 = 7;

  Lcd_Init(&PORTD);
  Lcd_Cmd(Lcd_CLEAR);       // Limpa display
  Lcd_Cmd(Lcd_CURSOR_OFF);  // Desliga o Cursor
  Lcd_Out(1, 1, "PICTRONICS");
  Lcd_Out(2, 1, "Conta:");

while (1)
{
   ByteToStr(conta,tnum);
   Lcd_Out(2, 8, tnum);
   if (conta != 100)
   conta++;
   else
   conta = 0;
   delay_ms (500);
  }
}




Abraço.

Jorge_65535


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Ter Jan 03, 2012 9:38 pm 
Offline

Data de registro: Qui Dez 29, 2011 7:58 am
Mensagens: 5
valeu jorge e daniel, vou continuar quebrando a cabeça, foi de muita ajuda, mas com certeza vou ter que estudar muito, valeu!!! e um exelente ano 2012 para vcs.
abraços!!!
paulo


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Ter Jan 17, 2012 7:30 pm 
Offline

Data de registro: Ter Jan 17, 2012 7:22 pm
Mensagens: 1
olá paulo!
sou iniciante no mickroC Pro e em microcontroladores...
to travado aki com esse compilador..
puts se puder dar uma força ai cara eu agradeço!
em anexo tem as imagens...
Abraço!


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: erro ao compilar 16f877a
MensagemEnviado: Qui Jan 19, 2012 12:44 pm 
Offline

Data de registro: Qui Jan 19, 2012 12:41 pm
Mensagens: 6
Olá
Tem que habilitar a biblioteca da UART no compilador mikroC, caso ocorra erro no código pressione Ctrl + space e o compilador vai mostra o modo correto de escrever o código segue abaixo o código que o senhor enviou corrigido.

void main()
{
cmcon = 0x07;
intcon=0x00;
trisa=0x1e;
trisb=0x00;
portb=0;

UART1_Init(2400);

while(1)
{
if(UART_Data_Ready())
{
Uart_read();
UART_Write;
}

}

Agradecemos o seu contato e ficamos à disposição para mais informações.

Bruno Emanuel


Voltar ao topo
 Perfil  
 
Mostrar mensagens anteriores:  Organizar por  
Criar novo tópico Responder Tópico  [ 16 Mensagens ]  Ir para a página 1, 2  Próximo

Todos os Horários estão como UTC - 3 horas [ DST ]


Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum

Procurar por:
Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por phpBB Brasil