Contribuição singela para iniciantes sobre UART

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Contribuição singela para iniciantes sobre UART

Mensagempor Guri » 19 Ago 2022 16:36

/******************************************************
SOFTWARE UART1 TX
Protocolo: Start D0 D1 D1 D3 D4 D5 D6 D7 Stop Stop
--|_____|x x x x x x x x |---------|
9600bps
NOTA: Ajuste o Delay se necessário.
Autor: Antonio Marcos AGI.
SerialTX = pode ser qualquer I/O, configurable output.
NOTA: no meu caso utilizei em um PIC18
*******************************************************/
void Soft_UART1_WriteData(unsigned char t)
{ unsigned char a;
GIE_bit = 0; // Desliga interrupção global
SerialTX = 0; // Start
Delay_us(1042); // Time

for(a=0; a<=7; a++) // Rotaciona 8 bits de saida
{
if(t.f0 == 1)
{
SerialTX = 1;
} else
{
SerialTX = 0;
}
t>>=1;
Delay_us(1042); // Time
}
SerialTX = 1; // Dois Stop bit
Delay_us(2084); // time
GIE_bit = 1; // Liga interrupção global
}

Espero que ajude, quem estiver precisando ter outras seriais TX, onde há apenas uma.
Eu utilizo para onde não há disponibilidade e maiores recursos de hardware e onde o custo é importante como foi no meu caso.
Se precisar para outras frequencias de baud rate, a formula é: 1/F = time baud rate.
8)
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x