Hi,
ich habe folgendes kleines Programm geschrieben:
1 | void Schalter1 (void)
|
2 | {
|
3 |
|
4 | PORTC &= ~(1<<PORTC0); // Bit 0 loeschen, LED an
|
5 | _delay_ms(2000);
|
6 | PORTC |= (1 << PORTC0); // Bit 0 setzen, LED aus
|
7 | }
|
8 | void Schalter2 (void)
|
9 | {
|
10 | PORTC &= ~(1<<PORTC1); // Bit 0 loeschen, LED an
|
11 | _delay_ms(2000);
|
12 | PORTC |= (1 << PORTC1); // Bit 0 setzen, LED aus}
|
13 | }
|
14 |
|
15 |
|
16 | int main(void)
|
17 | {
|
18 |
|
19 | // Datenrichtung festsetzen
|
20 | DDRB = 0x00; // alles Eingänge
|
21 | PORTB = 0xFF; // alle PullUps einschalten
|
22 |
|
23 | DDRC = 0x3F; // Pin 0-5 Ausgänge!
|
24 |
|
25 | // Interrupts einschalten
|
26 | // sei ();
|
27 |
|
28 | PORTC = 0xFF; // alle LEDs aus
|
29 |
|
30 | while (1)
|
31 | {
|
32 | if (PINB & (0<<PINB0))
|
33 | {
|
34 | Schalter1();
|
35 | }
|
36 |
|
37 | if (PINB & (0<<PINB1))
|
38 | {
|
39 | Schalter2();
|
40 | }
|
41 | } // Ende while
|
42 | }
|
Wenn ich PINB0 mit Masse verbinde, dann müsste die LED an PINC0 für 2
Sekunden aufleuchten und dann wieder ausgehen.
Ich hab mich dabei an die Angaben aus dem Tutorial gehalten:
DDRB = 0x00, alles Eingänge
PORTB = 0xFF, alle internen PULL-Ups an
Leider blinkt die LED an PORTC0 nicht auf, wenn ich PINB0 mit Masse
verbinde.