X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=inline;f=drv%2Fser_avr.c;h=78a3058d3020e1080cc34c67ad9486b8d64d1644;hb=ea907b91f4feb6acff1329f903c99cf03f8bb893;hp=452e16b330f9d8ec3ce5b669c4313d71103a3baf;hpb=fd3f7490acdd11c16df7530089ca18785fd63915;p=bertos.git diff --git a/drv/ser_avr.c b/drv/ser_avr.c index 452e16b3..78a3058d 100755 --- a/drv/ser_avr.c +++ b/drv/ser_avr.c @@ -38,6 +38,9 @@ /*#* *#* $Log$ + *#* Revision 1.17 2004/10/19 07:52:35 bernie + *#* Reset parity bits before overwriting them (Fixed by batt in project_ks). + *#* *#* Revision 1.16 2004/10/03 18:45:48 bernie *#* Convert to new-style config macros; Allow compiling with a C++ compiler (mostly). *#* @@ -372,7 +375,7 @@ static void uart0_setbaudrate(UNUSED(struct SerialHardware *, _hw), unsigned lon static void uart0_setparity(UNUSED(struct SerialHardware *, _hw), int parity) { #if !CPU_AVR_ATMEGA103 - UCSR0C |= (parity) << UPM0; + UCSR0C = (UCSR0C & ~(BV(UPM1) | BV(UPM0))) | ((parity) << UPM0); #endif } @@ -420,7 +423,7 @@ static void uart1_setbaudrate(UNUSED(struct SerialHardware *, _hw), unsigned lon static void uart1_setparity(UNUSED(struct SerialHardware *, _hw), int parity) { - UCSR1C |= (parity) << UPM0; + UCSR1C = (UCSR1C & ~(BV(UPM1) | BV(UPM0))) | ((parity) << UPM0); } #endif // AVR_HAS_UART1