mirror of
1
0
Fork 0

Apparently my TIL311 has different pin layout. Clean up bitwise operations.

This commit is contained in:
Mika Tuupola 2011-03-14 23:10:19 +02:00
parent 9c2adc3270
commit a3033f2727
1 changed files with 19 additions and 13 deletions

View File

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