Programé un pic18f4685 para usar el UART integrado para enviar un Ascii (48) - Para tu información es un cero - infinitamente. 19200baud 8-N-1 utilizando un NorthMicro NM101 proto board.
void TX_UART(void)
{
unsigned char phrase[]="Press 0 to Exitvoid TX_UART(void)
{
unsigned char phrase[]="Press 0 to Exit%pre%";
unsigned char TX_Value;
lcd_clear();
lcd_goto(0x40);
lcd_puts(phrase);
lcd_goto(0x00);
// Initialize SPBRGH:SPBRG for 19200 baud BRGH =1 BRG16=0
SPBRGH = 0;
SPBRG = 64;
TXSTAbits.BRGH = 1;
BAUDCONbits.BRG16 = 0;
TXSTAbits.SYNC = 0;
RCSTAbits.SPEN = 1;
TXSTAbits.TXEN = 1;
while(KEYBOARD()!='0')
{
while(!TXSTAbits.TRMT)
{}
TXREG='0';
while(!TXSTAbits.TRMT)
{}
TXREG='0';
while(!TXSTAbits.TRMT)
{}
TXREG='0';
}
lcd_clear();
}
";
unsigned char TX_Value;
lcd_clear();
lcd_goto(0x40);
lcd_puts(phrase);
lcd_goto(0x00);
// Initialize SPBRGH:SPBRG for 19200 baud BRGH =1 BRG16=0
SPBRGH = 0;
SPBRG = 64;
TXSTAbits.BRGH = 1;
BAUDCONbits.BRG16 = 0;
TXSTAbits.SYNC = 0;
RCSTAbits.SPEN = 1;
TXSTAbits.TXEN = 1;
while(KEYBOARD()!='0')
{
while(!TXSTAbits.TRMT)
{}
TXREG='0';
while(!TXSTAbits.TRMT)
{}
TXREG='0';
while(!TXSTAbits.TRMT)
{}
TXREG='0';
}
lcd_clear();
}
He muestreado el chip pre-max232 fuera del pin RC6, por lo que aún no se ha invertido y solo está a aproximadamente .5 Vp-p.
Según las fuentes de Internet, debería estar viendo un bit de Inicio / LSB a MSB / Stop.
Basándome en esa información, pensé que debería estar viendo en el alcance para Ascii (48) una señal como esta: 1000011001 pero parece que tengo un bit adicional (s). ¿Qué me estoy perdiendo? [Cada 2 bits / Div]
Cuando la señal es recibida por PuTTY, llega a través de errores finos y sin errores. Solo quiero entender por qué veo lo que tengo y no lo que esperaba.