+void PDITarget_DisableTargetPDI(void)\r
+{\r
+ /* Turn of receiver and transmitter of the USART, clear settings */\r
+ UCSR1B = 0;\r
+ UCSR1C = 0;\r
+\r
+ /* Set all USART lines as input, tristate */\r
+ DDRD &= ~(1 << 5) | (1 << 3);\r
+ PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2));\r
+}\r
+\r
+void PDITarget_SendByte(uint8_t Byte)\r
+{\r
+ UCSR1B &= ~(1 << RXEN1);\r
+ UCSR1B |= (1 << TXEN1);\r
+\r
+ UDR1 = Byte;\r
+\r
+ while (!(UCSR1A & (1 << TXC1)));\r
+ UCSR1A |= (1 << TXC1);\r
+}\r
+\r
+uint8_t PDITarget_ReceiveByte(void)\r
+{\r
+ UCSR1B &= ~(1 << TXEN1);\r
+ UCSR1B |= (1 << RXEN1);\r
+\r
+ while (!(UCSR1A & (1 << RXC1)));\r
+ UCSR1A |= (1 << RXC1);\r
+ \r
+ return UDR1;\r
+}\r
+\r
+void PDITarget_SendBreak(void)\r
+{\r
+ UCSR1B &= ~(1 << RXEN1);\r
+ UCSR1B |= (1 << TXEN1);\r
+\r
+ for (uint8_t i = 0; i < BITS_IN_FRAME; i++)\r
+ {\r
+ while (PIND & (1 << 5));\r
+ while (!(PIND & (1 << 5)));\r
+ }\r
+}\r
+#endif\r
+\r