Add support for soft serial to ATmega32U2 (#10204)
* Add support for soft serial to ATmega32U2 * Update drivers/avr/serial.c * Update drivers/avr/serial.c * Update drivers/avr/serial.c * Fix comment * Update drivers/avr/serial.c
This commit is contained in:
		
							parent
							
								
									53ad78b4b6
								
							
						
					
					
						commit
						73d20754bb
					
				
					 3 changed files with 12 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -20,11 +20,11 @@
 | 
			
		|||
 | 
			
		||||
#ifdef SOFT_SERIAL_PIN
 | 
			
		||||
 | 
			
		||||
#    ifdef __AVR_ATmega32U4__
 | 
			
		||||
// if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial.
 | 
			
		||||
#    if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)
 | 
			
		||||
// if using ATmegaxxU4 I2C, can not use PD0 and PD1 in soft serial.
 | 
			
		||||
#        ifdef USE_AVR_I2C
 | 
			
		||||
#            if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1
 | 
			
		||||
#                error Using ATmega32U4 I2C, so can not use PD0, PD1
 | 
			
		||||
#                error Using ATmegaxxU4 I2C, so can not use PD0, PD1
 | 
			
		||||
#            endif
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +52,7 @@
 | 
			
		|||
#                define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
 | 
			
		||||
#                define SERIAL_PIN_INTERRUPT INT3_vect
 | 
			
		||||
#            endif
 | 
			
		||||
#        elif SOFT_SERIAL_PIN == E6
 | 
			
		||||
#        elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && SOFT_SERIAL_PIN == E6
 | 
			
		||||
#            define EIMSK_BIT _BV(INT6)
 | 
			
		||||
#            define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
 | 
			
		||||
#            define SERIAL_PIN_INTERRUPT INT6_vect
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@
 | 
			
		|||
#        endif
 | 
			
		||||
 | 
			
		||||
#    else
 | 
			
		||||
#        error serial.c now support ATmega32U4 only
 | 
			
		||||
#        error serial.c currently only supports ATmegaxxU2 and ATmegaxxU4
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#    define ALWAYS_INLINE __attribute__((always_inline))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue