43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
#include <avr/io.h>
|
||
|
||
void
|
||
Taster_init (void){
|
||
DDRD &= ~(0b111<<5); /* Set bit 5-7 of Data Direction Register D as input */
|
||
DDRC &= ~(1<<2); /* Set bit 2 of Data Direction Register C as input */
|
||
|
||
PORTD |= (0b111<<5); /* Initialize bit 5-7 of PORTD as for pull up resistor */
|
||
PORTC |= (1<<PINC2); /* Initialize bit 2 of PORTC as for pull up resistor */
|
||
|
||
/** Disable JTAG so Pin 2 of PORTC can be used as a GPIO
|
||
* Command needs to be run twice - see MCU Control Register Description (23.8.1)
|
||
* Bits 7 – JTD: JTAG Interface Disable
|
||
* [..] The application software must write this bit to the desired value
|
||
* twice within four cycles to change its value. [...]
|
||
*/
|
||
MCUCR |= (1<<JTD);
|
||
MCUCR |= (1<<JTD);
|
||
}
|
||
|
||
uint8_t
|
||
Taster1_get (void){
|
||
/* Check if pin is low
|
||
-> low active pin
|
||
-> button is pressed
|
||
-> return 1 */
|
||
return ((PIND & (1<<PIND7)) == 0);
|
||
}
|
||
|
||
uint8_t
|
||
Taster2_get (void){
|
||
return ((PIND & (1<<PIND6)) == 0);
|
||
}
|
||
|
||
uint8_t
|
||
Taster3_get (void){
|
||
return ((PIND & (1<<PIND5)) == 0);
|
||
}
|
||
|
||
uint8_t
|
||
Taster4_get (void){
|
||
return ((PINC & (1<<PINC2)) == 0);
|
||
} |