Add macro for disabling and enabling internal pullups.
This commit is contained in:
parent
5eba9dde1c
commit
6b889b0ae5
@ -32,9 +32,7 @@
|
|||||||
|
|
||||||
void init(void) {
|
void init(void) {
|
||||||
|
|
||||||
/* Make PORTD2..7 PORTD0..1 (Arduino digital 2..10) input by clearing bits in DDR */
|
/* Switch inputs. */
|
||||||
//DDRD &= ~(_BV(PORTD2) | _BV(PORTD3) | _BV(PORTD4) | _BV(PORTD5) | _BV(PORTD6) | _BV(PORTD7));
|
|
||||||
//DDRB &= ~(_BV(PORTB0) | _BV(PORTB1));
|
|
||||||
pin_mode(2, INPUT);
|
pin_mode(2, INPUT);
|
||||||
pin_mode(3, INPUT);
|
pin_mode(3, INPUT);
|
||||||
pin_mode(4, INPUT);
|
pin_mode(4, INPUT);
|
||||||
@ -48,33 +46,21 @@ void init(void) {
|
|||||||
/* you don’t connect anything to pin and if you try to read it, it will read as 1. Now, */
|
/* you don’t connect anything to pin and if you try to read it, it will read as 1. Now, */
|
||||||
/* when you externally drive that pin to zero(i.e. connect to ground / or pull-down), */
|
/* when you externally drive that pin to zero(i.e. connect to ground / or pull-down), */
|
||||||
/* only then it will be read as 0. */
|
/* only then it will be read as 0. */
|
||||||
|
|
||||||
/* Enable pullups by setting bits in PORT. Default state is now high. */
|
|
||||||
PORTD |= (_BV(PORTD2) | _BV(PORTD3) | _BV(PORTD4) | _BV(PORTD5) | _BV(PORTD6) | _BV(PORTD7));
|
|
||||||
PORTB |= (_BV(PORTB0) | _BV(PORTB1));
|
|
||||||
|
|
||||||
/* Disable pullups by clearing bits in PORT. Default state is now low. */
|
pin_pullup(2, DISABLE);
|
||||||
/*
|
pin_pullup(3, DISABLE);
|
||||||
PORTD &= ~(_BV(PORTD2) | _BV(PORTD3) | _BV(PORTD4) | _BV(PORTD5) | _BV(PORTD6) | _BV(PORTD7));
|
pin_pullup(4, DISABLE);
|
||||||
PORTB &= ~(_BV(PORTB0) | _BV(PORTB1));
|
pin_pullup(5, DISABLE);
|
||||||
*/
|
pin_pullup(6, DISABLE);
|
||||||
|
pin_pullup(7, DISABLE);
|
||||||
|
pin_pullup(8, DISABLE);
|
||||||
|
pin_pullup(9, DISABLE);
|
||||||
|
|
||||||
/* Make PORTB5 (Arduino digital 13) an output by setting bit in DDR. */
|
/* Blinken led. */
|
||||||
//DDRB |= _BV(PORTB5);
|
|
||||||
pin_mode(13, OUTPUT);
|
pin_mode(13, OUTPUT);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
int digital_read(int input_register, int pin) {
|
|
||||||
return bit_is_set(input_register, pin) != 0 ? 1 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void digital_write(int input_register, int pin) {
|
|
||||||
input_register |= _BV(pin);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
|
||||||
init();
|
init();
|
||||||
@ -83,18 +69,11 @@ int main(void) {
|
|||||||
stdin = &uart_input;
|
stdin = &uart_input;
|
||||||
|
|
||||||
int value;
|
int value;
|
||||||
//char buffer[9];
|
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
/* Blink led by toggling state of PORTB5 (Arduino digital 13). */
|
/* Blink led by toggling state of PORTB5 (Arduino digital 13). */
|
||||||
PORTB ^= _BV(PORTB5);
|
PORTB ^= _BV(PORTB5);
|
||||||
|
|
||||||
/*
|
|
||||||
puts("PINB");
|
|
||||||
value = PINB;
|
|
||||||
itoa(value, buffer, 2);
|
|
||||||
puts(buffer);
|
|
||||||
*/
|
|
||||||
|
|
||||||
value = digital_read(2);
|
value = digital_read(2);
|
||||||
printf("%d", value);
|
printf("%d", value);
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
#define INPUT 0x0
|
#define INPUT 0x0
|
||||||
#define OUTPUT 0x1
|
#define OUTPUT 0x1
|
||||||
|
|
||||||
|
#define ENABLE 0x1
|
||||||
|
#define DISABLE 0x0
|
||||||
|
|
||||||
#define ARDUINOPIN_TO_TIMERID(x) TIMER_AT_PIN_##x
|
#define ARDUINOPIN_TO_TIMERID(x) TIMER_AT_PIN_##x
|
||||||
#define ARDUINOPIN_TO_TCCRID(x) TCCR_AT_PIN_##x
|
#define ARDUINOPIN_TO_TCCRID(x) TCCR_AT_PIN_##x
|
||||||
@ -548,9 +549,14 @@
|
|||||||
#define D_WRITE_0x1(pin) D_WRITE_HIGH(pin)
|
#define D_WRITE_0x1(pin) D_WRITE_HIGH(pin)
|
||||||
#define D_WRITE_0x0(pin) D_WRITE_LOW(pin)
|
#define D_WRITE_0x0(pin) D_WRITE_LOW(pin)
|
||||||
|
|
||||||
|
#define D_WRITE_ENABLE(pin) D_WRITE_HIGH(pin)
|
||||||
|
#define D_WRITE_DISABLE(pin) D_WRITE_LOW(pin)
|
||||||
|
|
||||||
#define SET_OUTPUT(pin) EXPAND_WRAPPER(_SET_OUTPUT, ARDUINOPIN_TO_PORTID(pin), ARDUINOPIN_TO_PORTMSK(pin) )
|
#define SET_OUTPUT(pin) EXPAND_WRAPPER(_SET_OUTPUT, ARDUINOPIN_TO_PORTID(pin), ARDUINOPIN_TO_PORTMSK(pin) )
|
||||||
#define SET_INPUT(pin) EXPAND_WRAPPER(_SET_INTPUT, ARDUINOPIN_TO_PORTID(pin), ARDUINOPIN_TO_PORTMSK(pin) )
|
#define SET_INPUT(pin) EXPAND_WRAPPER(_SET_INTPUT, ARDUINOPIN_TO_PORTID(pin), ARDUINOPIN_TO_PORTMSK(pin) )
|
||||||
|
|
||||||
#define pin_mode(pin, mode) SET_##mode(pin)
|
#define pin_mode(pin, mode) SET_##mode(pin)
|
||||||
|
#define pin_pullup(pin, val) D_WRITE_##val(pin)
|
||||||
|
|
||||||
|
|
||||||
#endif /* PINS_H */
|
#endif /* PINS_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user