Variable hochzählen durch Tasterabfrage

Gast #3267753
Lesenswert?

Hallo zusammen. Ich möchte einfach nur durch drücken eines Tasters, eine 
Variable hochzählen lassen. was mache ich falsch.?
1
while(1){
2
  int key = 0;
3
  char puffer[16];
4
  itoa (key,puffer,10);
5
  lcd_set_cursor(0,LINE6);
6
  lcd_puts(small_font, puffer);
7
  if (PIND & (1<<PD0)){
8
    key = key+1;
9
  }
10
}
Auf dem Display steht nur eine 0 da. Wieso das.?
Danke euch
#3267765
Lesenswert?

>
1
> while(1){
2
>   int key = 0;
3
>

weil die Variable 'key' bei JEDEM Durchlauf durch die while Schleife 
erneut erzeugt wird. Danach macht der SChleifenkörper sein Ding und am 
Ende des SChleifenkörpers wird die Variable wieder zerstört um dann beim 
nächsten Durchgang durch die Schleife erneut erzeugt zu werden. Und 
natürlich: bei jeder Erzeugung wird sie mit 0 initialisiert.

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