mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	Add ATmega32u2 Support to HHKB (#17298)
This commit is contained in:
		
							parent
							
								
									a80943579c
								
							
						
					
					
						commit
						ac333016eb
					
				
							
								
								
									
										5
									
								
								keyboards/hhkb/ansi/32u2/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								keyboards/hhkb/ansi/32u2/rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# MCU name
 | 
				
			||||||
 | 
					MCU = atmega32u2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONSOLE_ENABLE = no   # Console for debug
 | 
				
			||||||
 | 
					COMMAND_ENABLE = no   # Commands for debug and configuration
 | 
				
			||||||
@ -78,6 +78,60 @@ static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(__AVR_ATmega32U2__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * For TMK HHKB alt controller(ATMega32U4)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * row:     PB0-2
 | 
				
			||||||
 | 
					 * col:     PB3-5,6
 | 
				
			||||||
 | 
					 * key:     PD3(pull-uped)
 | 
				
			||||||
 | 
					 * prev:    PB7
 | 
				
			||||||
 | 
					 * power:   PD4(L:off/H:on)
 | 
				
			||||||
 | 
					 * row-ext: PC6,7 for HHKB JP(active low)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); }
 | 
				
			||||||
 | 
					static inline void KEY_UNABLE(void) { (PORTB |=  (1<<6)); }
 | 
				
			||||||
 | 
					static inline bool KEY_STATE(void) { return (PIND & (1<<3)); }
 | 
				
			||||||
 | 
					static inline void KEY_PREV_ON(void) { (PORTB |=  (1<<7)); }
 | 
				
			||||||
 | 
					static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); }
 | 
				
			||||||
 | 
					#ifdef HHKB_POWER_SAVING
 | 
				
			||||||
 | 
					static inline void KEY_POWER_ON(void) {
 | 
				
			||||||
 | 
					    DDRB = 0xFF; PORTB = 0x40;          // change pins output
 | 
				
			||||||
 | 
					    DDRD |= (1<<4); PORTD |= (1<<4);    // MOS FET switch on
 | 
				
			||||||
 | 
					    /* Without this wait you will miss or get false key events. */
 | 
				
			||||||
 | 
					    _delay_ms(5);                       // wait for powering up
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					static inline void KEY_POWER_OFF(void) {
 | 
				
			||||||
 | 
					    /* input with pull-up consumes less than without it when pin is open. */
 | 
				
			||||||
 | 
					    DDRB = 0x00; PORTB = 0xFF;          // change pins input with pull-up
 | 
				
			||||||
 | 
					    DDRD |= (1<<4); PORTD &= ~(1<<4);   // MOS FET switch off
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					static inline void KEY_POWER_ON(void) {}
 | 
				
			||||||
 | 
					static inline void KEY_POWER_OFF(void) {}
 | 
				
			||||||
 | 
					static inline bool KEY_POWER_STATE(void) { return true; }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					static inline void KEY_INIT(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /* row,col,prev: output */
 | 
				
			||||||
 | 
					    DDRB  = 0xFF;
 | 
				
			||||||
 | 
					    PORTB = 0x40;   // unable
 | 
				
			||||||
 | 
					    /* key: input with pull-up */
 | 
				
			||||||
 | 
					    DDRD  &= ~0x80;
 | 
				
			||||||
 | 
					    PORTD |=  0x80;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    KEY_UNABLE();
 | 
				
			||||||
 | 
					    KEY_PREV_OFF();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    KEY_POWER_OFF();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#elif defined(__AVR_AT90USB1286__)
 | 
					#elif defined(__AVR_AT90USB1286__)
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
				
			|||||||
@ -14,9 +14,9 @@ CONSOLE_ENABLE = yes   # Console for debug
 | 
				
			|||||||
COMMAND_ENABLE = yes   # Commands for debug and configuration
 | 
					COMMAND_ENABLE = yes   # Commands for debug and configuration
 | 
				
			||||||
CUSTOM_MATRIX = yes    # Custom matrix file for the HHKB
 | 
					CUSTOM_MATRIX = yes    # Custom matrix file for the HHKB
 | 
				
			||||||
NKRO_ENABLE = no            # Enable N-Key Rollover
 | 
					NKRO_ENABLE = no            # Enable N-Key Rollover
 | 
				
			||||||
# BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
 | 
					BACKLIGHT_ENABLE = no  # Enable keyboard backlight functionality
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# HHKB_RN42_ENABLE = yes  # Enable support for hasu's BT alt controller -- code borrowed from tmk source tree.
 | 
					HHKB_RN42_ENABLE = no  # Enable support for hasu's BT alt controller -- code borrowed from tmk source tree.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Either uncomment the HHKB_RN42_ENABLE line above, or run make enabling the
 | 
					# Either uncomment the HHKB_RN42_ENABLE line above, or run make enabling the
 | 
				
			||||||
# feature. Be sure to clean any existing build before trying to enable rn42
 | 
					# feature. Be sure to clean any existing build before trying to enable rn42
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user