STK500 Timer & LED

#5774770
Lesenswert?

Hallo Zusammen!

Vielleicht will mir jemand kurz helfen...
Meine Idee:
Wenn ich Taster 0 drücke, sollen die LEDs 0xCC angehen (und auch an 
bleiben), also eigentlich ganz einfach.. ;) Mirkocontroller: ATmega328p

Quellcode 1 funktioniert:
1
#include <avr/interrupt.h>
2
#include <avr/io.h>
3
int main(void)
4
{
5
  
6
  DDRD = 0xFF;
7
  PORTD = 0x00;
8
  DDRB = 0x00;
9
  
10
    while(1) {
11
    if(~PINB & (1 << PINB0)) {
12
      PORTD = 0xCC;
13
    }    
14
  }
15
}

Der folgende Quellcode funktioniert nicht. Es werden nach der Betätigung 
des Tasters wieder die LEDs zurückgesetzt, also quasi "nicht 
speichernd". Mir total unklar..
1
#include <avr/interrupt.h>
2
#include <avr/io.h>
3
int main(void)
4
{
5
  cli();
6
  
7
  TCCR0A = (1 << WGM01);
8
  TCCR0B = (1 << CS02) | (1 << CS00);
9
  OCR0A = 255;
10
  TIMSK0 = (1 << OCIE0A);
11
  
12
  DDRD = 0xFF;
13
  PORTD = 0x00;
14
  DDRB = 0x00;
15
  
16
  sei();
17
  
18
    while(1) {
19
    if(~PINB & (1 << PINB0)) {
20
      PORTD = 0xCC;
21
    }    
22
  }
23
}

Vielen Dank für die Hilfe ;)

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