diff --git a/til311/main.c b/til311/main.c index 041efcc..9987f26 100644 --- a/til311/main.c +++ b/til311/main.c @@ -1,16 +1,18 @@ /* * Loops through 0-F and displays it on TIL311. Pure C version. * - * TIL311 pin 3 -> Arduino Digital 2 (PORTD2) - * TIL311 pin 2 -> Arduino Digital 3 (PORTD3) - * TIL311 pin 13 -> Arduino Digital 4 (PORTD4) - * TIL311 pin 12 -> Arduino Digital 5 (PORTD5) + * TIL311 pin 12 -> Arduino Digital 2 (PORTD2) + * TIL311 pin 13 -> Arduino Digital 3 (PORTD3) + * TIL311 pin 2 -> Arduino Digital 4 (PORTD4) + * TIL311 pin 3 -> Arduino Digital 5 (PORTD5) + * + * TIL311 pin 8 -> Arduino Digital 5 (PORTD6) * * Led at Arduino Digital 13 (PORTB5) * * To compile and upload run: make clean; make; make flash; * - * Copyright 2009 Mika Tuupola + * Copyright 2009-2011 Mika Tuupola * * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php @@ -24,16 +26,19 @@ int main(void) { - /* Make PORTB5 (Arduino 13) and PORTD0-PORTD3 (Arduino 2-5) as an output. */ + /* Make PORTB5 (Arduino 13) and PORTD0-PORTD3 (Arduino 2-6) as an output. */ DDRB |= _BV(PORTB5); - DDRD |= _BV(PORTD2) | _BV(PORTD3) | _BV(PORTD4) | _BV(PORTD5); + DDRD |= _BV(PORTD2) | _BV(PORTD3) | _BV(PORTD4) | _BV(PORTD5) | _BV(PORTD7); for(;;) { + + PORTD |= _BV(PORTD7); + /* Reset displayed value. */ int value = 0; - while (value < 16) { + /* Toggle led at PORTB5 */ PORTB ^= _BV(PORTB5); @@ -44,35 +49,36 @@ int main(void) { /* TIL311 pin 3, latch data input A (1). */ if (0 == BIT_AT(value, 0)) { - PORTD &= ~(_BV(PORTD2)); + PORTD &= ~_BV(PORTD2); } else { PORTD |= _BV(PORTD2); } /* TIL311 pin 2, latch data input B (2). */ if (0 == BIT_AT(value, 1)) { - PORTD &= ~(_BV(PORTD3)); + PORTD &= ~_BV(PORTD3); } else { PORTD |= _BV(PORTD3); } /* TIL311 pin 13, latch data input C (4). */ if (0 == BIT_AT(value, 2)) { - PORTD &= ~(_BV(PORTD4)); + PORTD &= ~_BV(PORTD4); } else { PORTD |= _BV(PORTD4); } /* TIL311 pin 12, latch data input D (8). */ if (0 == BIT_AT(value, 3)) { - PORTD &= ~(_BV(PORTD5)); + PORTD &= ~_BV(PORTD5); } else { PORTD |= _BV(PORTD5); } - + value++; _delay_ms(500); } + } /* This is never reached. */