diff options
Diffstat (limited to 'src/rs232.c')
-rw-r--r-- | src/rs232.c | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/src/rs232.c b/src/rs232.c index e060759..3fba3b4 100644 --- a/src/rs232.c +++ b/src/rs232.c @@ -17,31 +17,54 @@ void eusart1_init(void) // set up TX / RX pins TRISCbits.TRISC7 = 1; TRISCbits.TRISC6 = 1; - RCSTA1bits.CREN = 1; // enable continuous reception + // enable continuous reception + RCSTA1bits.CREN = 1; TXSTA1bits.TXEN = 1; } void eusart2_init(void) { - // TODO + // set Async and 8 bits frame + TXSTA2bits.SYNC = 0; + TXSTA2bits.TX9 = 0; + + // baud prescaler + RCSTA2bits.SPEN = 1; + SPBRG2 = 31; + SPBRGH2 = 0; + TXSTA2bits.BRGH = 0; + BAUDCON2bits.BRG16 = 0; + + // set up TX / RX pins + TRISDbits.TRISD7 = 1; + TRISDbits.TRISD6 = 1; + // enable continuous reception + RCSTA2bits.CREN = 1; + TXSTA2bits.TXEN = 1; } -void putch(char c) +void eusart1_putch(char c) { while (!TX1IF); TX1REG = c; } -char getch(void) +void eusart2_putch(char c) +{ + while (!TX2IF); + TX2REG = c; +} + +char eusart1_getch(void) { while (!RC1IF); return RC1REG; } -char getche(void) +char eusart1_getche(void) { - char c = getch(); - putch(c); // echo + char c = eusart1_getch(); + eusart1_putch(c); // echo return c; -} +}
\ No newline at end of file |