Fehlersuche im Code für ATmega 8

Gast #3146036
Lesenswert?
• ▲
▼
Hallo,

ich steige gerade wieder neu in die Programmierung von µCen ein und 
wollte einfach mal eine einfache Anwendung testen. Leider komme ich 
nicht darauf, was ich falsch mache - wahrscheinlich seh ich nur den Wald 
vor lauter Bäumen nicht - vielleicht kann mir jemand von euch kurz 
helfen.

Ich benutze das aTeVal Board von eHajo mit einem ATmega8A mit folgender 
Pin-Belegung: PD2, PD3, PD4 Taster, die auf Ground schalten, PD5, PD6 
LEDs

Was jetzt will ich einfach nur realisieren, dass die LED1 leuchtet, wenn 
ich den Taster1 drücke und die LED2 leuchtet, wenn ich den Taster2 
drücke.

Mein LED Test funktioniert ohne Probleme, ein anderes Beispiel mit den 
Tastern hat auch funktioniert. Nur dieses mal leuchten nach meinem LED 
Test beide LEDs dauerhaft.

Vielen Dank für euere Hilfe!

Vg Dane

1
 
2
#define F_CPU 8000000UL     /* 8MHz */
3
 
4
#include <avr/io.h>
5
#include <util/delay.h>
6
 
7
// Prototypen
8
void long_delay(uint16_t);
9
 
10
// Defines:
11
#define LED1    (1<<PD6)
12
#define LED2    (1<<PD5)
13

14
#define Tas1    (1<<PD2)
15
#define Tas2    (1<<PD3)
16
#define Tas3    (1<<PD4)
17
 
18
void long_delay(uint16_t ms)
19
{
20
  for(; ms>0; ms--)
21
  _delay_ms(1);
22
}
23
 
24
void main()
25
{
26

27
 
28
  // LED-Pins als Ausgang definieren
29
  DDRD |= LED1 | LED2;
30
  // Taster-Pins als Eingänge definieren (Pullups-Zuschalten)
31
  DDRD |= Tas1 | Tas2 | Tas3;
32
 
33
  //LED Test
34
  PORTD |= LED1;
35
  long_delay(100);
36
  PORTD &= ~LED1;
37
  
38
  PORTD |= LED2;
39
  long_delay(100);
40
    PORTD &= ~LED2;
41
  
42
  
43
  while(1)
44
  {
45
    
46
    
47
    if (!(PIND & Tas1))
48
    {
49
      PORTD |= LED1;
50
    }
51
    else
52
    {
53
      PORTD &= ~LED1;
54
    }
55
    
56
    
57
    if (!(PIND & Tas2))
58
    {
59
      PORTD |= LED2;
60
    }
61
    else
62
    {
63
      PORTD &= ~LED2;
64
    }
65
    
66
    
67
    }
68
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.