|  |  | @ -74,18 +74,12 @@ void modbusSetAddress(unsigned char newadr) | 
			
		
	
		
		
			
				
					
					|  |  |  | #if PHYSICAL_TYPE == 485 |  |  |  | #if PHYSICAL_TYPE == 485 | 
			
		
	
		
		
			
				
					
					|  |  |  | void transceiver_txen(void) |  |  |  | void transceiver_txen(void) | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	#if BOARD_TYPE == bType5chLedDim |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	PORTD|=(1<<7); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	#endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	TRANSCEIVER_ENABLE_PORT|=(1<<TRANSCEIVER_ENABLE_PIN); |  |  |  | 	TRANSCEIVER_ENABLE_PORT|=(1<<TRANSCEIVER_ENABLE_PIN); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | void transceiver_rxen(void) |  |  |  | void transceiver_rxen(void) | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	TRANSCEIVER_ENABLE_PORT&=~(1<<TRANSCEIVER_ENABLE_PIN); |  |  |  | 	TRANSCEIVER_ENABLE_PORT&=~(1<<TRANSCEIVER_ENABLE_PIN); | 
			
		
	
		
		
			
				
					
					|  |  |  | 	#if BOARD_TYPE == bType5chLedDim |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	PORTD&=~(1<<7); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	#endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  | #endif | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -209,8 +203,8 @@ ISR(UART_TRANSMIT_INTERRUPT) | 
			
		
	
		
		
			
				
					
					|  |  |  | #ifndef __AVR_ATxmega32A4__ |  |  |  | #ifndef __AVR_ATxmega32A4__ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		UART_CONTROL&=~(1<<UART_UDRIE); |  |  |  | 		UART_CONTROL&=~(1<<UART_UDRIE); | 
			
		
	
		
		
			
				
					
					|  |  |  | #else |  |  |  | #else | 
			
		
	
		
		
			
				
					
					|  |  |  |         USARTD0_CTRLA &= ~(USART_DREINTLVL_gm); |  |  |  |         UART.CTRLA &= ~(USART_DREINTLVL_gm); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  | #endif//__AVR_ATxmega32A4__
 | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -236,34 +230,32 @@ void modbusInit(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     UCSRC = (3<<UCSZ0); //Frame Size
 |  |  |  |     UCSRC = (3<<UCSZ0); //Frame Size
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  | #endif | 
			
		
	
		
		
			
				
					
					|  |  |  | 	UART_CONTROL = (1<<TXCIE)|(1<<RXCIE)|(1<<RXEN)|(1<<TXEN); // USART receiver and transmitter and receive complete interrupt
 |  |  |  | 	UART_CONTROL = (1<<TXCIE)|(1<<RXCIE)|(1<<RXEN)|(1<<TXEN); // USART receiver and transmitter and receive complete interrupt
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	#if PHYSICAL_TYPE == 485 |  |  |  | #else//URSEL
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 	TRANSCEIVER_ENABLE_PORT_DDR|=(1<<TRANSCEIVER_ENABLE_PIN); |  |  |  |     UART.CTRLC = USART_CHSIZE_8BIT_gc; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 	transceiver_rxen(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	#endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	BusState=(1<<TimerActive); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | #else |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //8bit
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0.CTRLC = USART_CHSIZE0_bm | USART_CHSIZE1_bm; |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     //38400
 |  |  |  |     // set baudrate
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0.BAUDCTRLA = bsel; |  |  |  |     UART.BAUDCTRLA = UART_BSEL; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0.BAUDCTRLB = 0 | (bsel >> 8) | (bscale << USART_BSCALE0_bp); |  |  |  |     UART.BAUDCTRLB = 0 | (UART_BSEL >> 8) | (UART_BSCALE << USART_BSCALE0_bp); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0.CTRLB = USART_TXEN_bm | USART_RXEN_bm; |  |  |  |     UART.CTRLB = USART_TXEN_bm | USART_RXEN_bm; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     //Interrupt enable (levels)
 |  |  |  |     //Interrupt enable (levels)
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0.CTRLA |= USART_RXCINTLVL_HI_gc; |  |  |  |     UART.CTRLA |= USART_RXCINTLVL_HI_gc; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0.CTRLA |= USART_TXCINTLVL_HI_gc; |  |  |  |     UART.CTRLA |= USART_TXCINTLVL_HI_gc; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     PORTD_OUTSET = PIN3_bm; |  |  |  |     //PORTD_OUTSET = PIN3_bm;
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     PORTD_DIRSET = PIN3_bm; |  |  |  |     PORTD_DIRSET = PIN3_bm; | 
			
		
	
		
		
			
				
					
					|  |  |  |     PORTD_OUTCLR = PIN2_bm; |  |  |  |     //PORTD_OUTCLR = PIN2_bm;
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     PORTD_DIRCLR = PIN2_bm; |  |  |  |     //PORTD_DIRCLR = PIN2_bm;
 | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     //TODO Physical type 485
 |  |  |  | #endif//__AVR_ATxmega32A4__
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     BusState=(1<<TimerActive); |  |  |  |     #if PHYSICAL_TYPE == 485 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     TRANSCEIVER_ENABLE_PORT_DDR|=(1<<TRANSCEIVER_ENABLE_PIN); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     transceiver_rxen(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     #endif |  |  |  |     #endif | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     BusState=(1<<TimerActive); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | /* @brief: Sends a response.
 |  |  |  | /* @brief: Sends a response.
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -284,8 +276,7 @@ void modbusSendMessage(unsigned char packtop) | 
			
		
	
		
		
			
				
					
					|  |  |  | #ifndef __AVR_ATxmega32A4__ |  |  |  | #ifndef __AVR_ATxmega32A4__ | 
			
		
	
		
		
			
				
					
					|  |  |  |     UART_CONTROL|=(1<<UART_UDRIE); |  |  |  |     UART_CONTROL|=(1<<UART_UDRIE); | 
			
		
	
		
		
			
				
					
					|  |  |  | #else |  |  |  | #else | 
			
		
	
		
		
			
				
					
					|  |  |  |     //TODO use define for usartd
 |  |  |  |     UART.CTRLA |= USART_DREINTLVL_HI_gc; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     USARTD0_CTRLA |= USART_DREINTLVL_HI_gc; |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  | #endif | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	BusState&=~(1<<ReceiveCompleted); |  |  |  | 	BusState&=~(1<<ReceiveCompleted); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |