Codeschloss Atmega32 Fehler im Code

Gast #3638890
Lesenswert?

Hi

Ich versuche ein Codeschloss zu bauen welches 2 Taster einliest. Wenn es 
die richtigen waren soll die Led an PA0 eingeschaltet werden.
Ich verstehe allerdings nicht wieso es nicht funktioniert.
1
#define F_CPU 8000000
2

3
#include <avr/io.h>
4
#include <util/delay.h>
5

6
int main(void)
7
{
8
  uint8_t z1;
9
  uint8_t z2;
10
  z1 = 0;
11
  z2 = 2;
12
  DDRA |= (1 << 0);
13
    while(1)
14
    {
15
    while(z1 < 1) {
16
         if(PINA & (1 << 1)) {
17
      _delay_ms(100);
18
      z1 = 1;
19
     }
20
     if(PINA & (1 << 2)) {
21
       _delay_ms(100);
22
       z1 = 2;
23
     }
24
    }
25
    while(z2 < 1) {
26
      if(PINA & (1 << 1)) {
27
        _delay_ms(100);
28
        z2 = 1;
29
      }
30
      if(PINA & (1 << 2)) {
31
        _delay_ms(100);
32
        z2 = 2;
33
      }
34
    }
35
  if (z1 == 1 && z2 == 1) {
36
    PORTA |= (1 << 0);
37
   }
38
    }
39
}

lgf
Gast #3638899
Lesenswert?

1
/* Ein Vorteil von Kommentaren im Source-Code ist, dass man nicht nur selbst den Code versteht sondern auch Dritte eine Möglichkeit haben, die Gedankengänge des Programmierers nachvollziehen zu können. */
Gast #3638914
Lesenswert?

Hab den Fehler gefunden:

> z2 = 2;

es muss
1
z2 = 0;
heissen.

Nobby Nic schrieb:
> /* Ein Vorteil von Kommentaren im Source-Code ist, dass man nicht nur
> selbst den Code versteht sondern auch Dritte eine Möglichkeit haben, die
> Gedankengänge des Programmierers nachvollziehen zu können. */

Den Code finde ich selbsterklärend
Gast #3638918
Lesenswert?

Mike schrieb:
> Nobby Nic schrieb:
> /* Ein Vorteil von Kommentaren im Source-Code ist, ...
>
> Guter Code ist selbsterklärend. Da muss man nichts weiter zu sagen ;-)

Nicht alle sprachen sind dafür ausdrucksstatk genug.

zB. sind Inline Kommentare bei Java Code ein "Smell", d.h. ein Anzeichen 
für schlechten Code.

Ob das in C auch so ist?

Kurze Methoden sollten aber auch in C möglich sein, dann nimmt man 
sprechende Namen für die Methoden.
Gast #3638947
Lesenswert?

Kollege schrieb:
> zB. sind Inline Kommentare bei Java Code ein "Smell", d.h. ein Anzeichen
> für schlechten Code.
> Ob das in C auch so ist?

Empfiehlt sich zumindest wenn man Hardwareregister mit irgendwelchen 
Werten beschreibt. XYZSTAT |= (1<<ABC) | (1<<IRGENDWAS) ist nur mit 
danebenliegendem Datenblatt selbsterklärend.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren