Ich komme nicht drauf, wo da der Fehler liegt. Könnte mir jemand einen Rat geben? PB1-LED leuchtet nicht. Vielen Dank!
/*
- LICHT, NACHTRIGGERBAR
- Created: 14.1.2023 11:20:01
- Author : Übung 8 */
#define F_CPU 8000000UL
#include <avr/io.h> #include <avr/interrupt.h>
uint8_t timer_overflow_counter = 0, leuchtdauer = 10, leuchtdauer_led_2 = 0, tasten_flag = 0;
void init_timer_0 (void) { TCCR0B = (1<<CS01) + (1<<CS00); // Prescaler = 64 bei 8 MHz TIMSK0 = (1<<TOIE0); // Timer overflow interrupt enable TCNT0 = 6 ; // Timer mit 6 vorladen }
int main(void)
{
DDRB = 0xFF ; // PORTB = Ausgang
DDRD = 0xF0 ; // PD0..PD3 auf Eingang
PORTD |= (1 << PD2) ; // PD2 = Pull up
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
}
ISR(TIMER0_OVF_vect)
{
if (timer_overflow_counter <= 399)
timer_overflow_counter ++ ;
else // nach dem 400. Durchlauf:
{
TCNT0 = 6; // reload timer0
PORTB ^= (1 << PB0) ; // LED1 toggeln
timer_overflow_counter = 0; // Zähler zurücksetzen
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
;
tasten_flag = 0;
1 |
|
2 |
|
3 |
|
}
}
Verwendet wird ein ATMega48

