summaryrefslogtreecommitdiffstats
path: root/src/rs232.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rs232.c')
-rw-r--r--src/rs232.c39
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