Ich will über einen Fototransistor einen Blitz detektieren. Zum Testen
halte ich das gute stück einfach zu oder leuchte mit einer
Tisch-Halogenleuchte drauf.
Wenn ich den Transistor zuhalte liegen an INT0 0,8 Volt an, bei
beleuchtetem Zustand 4,8 Volt.
Interrupt ist aktiviert und auf steigende Flanke gestellt, laut
Datenblatt.
Aber anscheinend fehtl was weil kein Interrupt ausgelöst wird
Ich habe zwar schon im Forum gesucht, auch was gefunden, aber das war
nicht unbedingt anders als das was ich bis jetzt geproggt habe, mit dem
Unterschied dass es bei den anderen läuft ;-)
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | #include <avr/interrupt.h>
|
4 |
|
5 | void init(void)
|
6 | {
|
7 | DDRB |= (1<<PB4);
|
8 | PORTB |= (1<<PB4);
|
9 | MCUCR |= (1<<ISC01) | (1<<ISC00);
|
10 | GICR |= (1<<INT0);
|
11 | sei();
|
12 | }
|
13 |
|
14 | ISR(INT0_vect)
|
15 | {
|
16 | cli();
|
17 | PORTB &= ~(1<<PB4); //LED an
|
18 | _delay_ms(3000);
|
19 | sei();
|
20 | }
|
21 |
|
22 |
|
23 | void main(void)
|
24 | {
|
25 | init();
|
26 |
|
27 |
|
28 | while (1)
|
29 | {
|
30 | PORTB |= (1<<PB4); //LED aus
|
31 | }
|
32 | }
|
Hab ich noch irgendwas vergessen ?