Página 1 de 1

Comunicação serial do mega8

MensagemEnviado: 14 Jun 2008 13:54
por vohr56
Olá!

Estou tentando aprender a utilizar a serial do mega8. Fiz uma programa teste no code vision e simulei no proteus.


Segue o código fonte no codevision:



#include <delay.h>

// Standard Input/Output functions
#include <stdio.h>

int a=0;

void main(void)
{

DDRC.0=0;
PORTC.0=1;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;

while (1)
{
if(PINC.0==0)
{
a++;
delay_ms(300);
}

printf("Valor de a: %d \n aaaa \n fff",a);
}
}



soh que no terminal virtual do proteus ele esta colocando uma mensagem atras da outra. o comando \n no printf não faz saltar de linha. O que estou fazendo errado?

um outro exemplo para o pic roda normal, salta linha.


além disto, como faço para emular mais seriais? tipo, vamos supor que eu esteja utilizando o lcd na porta d, onde estao os pinos txd e rxd. Como utilizar a comunicação serial em outra porta?


Abraços.

MensagemEnviado: 15 Jun 2008 15:23
por RobL
Os pinos da USART serão sempre os mesmos, na mesma porta.
O que pode fazer é usar um sinal de chip select. Desta forma quando for enviar para o LCD, este é permitido, quando for usar usart <-> PC, o lcd é inibido e desta forma conseguir várias outros periféricos.
Há ainda o SPI para outras situações.

MensagemEnviado: 16 Jun 2008 12:44
por tcpipchip
Tenta \r

MensagemEnviado: 16 Jun 2008 14:56
por vohr56
tcpipchip escreveu:Tenta \r


Valew tcpipchip! Funcionou.

Agora quero tentar aprender a emular outra serial ou contornar esta situação.

Abraços!

MensagemEnviado: 20 Nov 2008 19:14
por rubenprom
Alguem conseguiu simular entrada e saida de dados na porta serial usando o ATmega??, nao sei como utilizar o o COMPIM e nem o VIRTUAL TERMINAL.

Tou programando no Codevision, utilizando uma frequencia do cristal a 4MHZ, e tb ajeitei no Proteus, que inicialmente o MEGA8 se encontra a 1MHz. Eu ja configurei a porta serial no CodeVision a 9600bps, e no Proteus tb

Alguem se habilita??

Grato