Hi,
ich sitze gerade vor meinem avr (atmega644) und schaffe es nicht über
einen externen Interrupt (PCINT) eine LED anzustellen. Anstelle dessen
resettet das Teil einfach...
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | #define LED1 PA0
|
5 | #define LED2 PA1
|
6 | #define LED_DDR DDRA
|
7 | #define LED_PORT PORTA
|
8 |
|
9 |
|
10 | int main (void)
|
11 | {
|
12 |
|
13 | // LED SETUP
|
14 | // LED1 soll angeschaltet werden
|
15 | LED_DDR |= (1 << LED1); // LED 1 als output
|
16 | LED_PORT &= ~(1 << LED1); // LED OFF
|
17 |
|
18 | // LED2 ist immer an
|
19 | LED_DDR |= (1 << LED2);
|
20 | LED_PORT |= (1 << LED2); //LED ON
|
21 |
|
22 |
|
23 | DDRA &= ~(1 << PA2); // Set input
|
24 | PORTA |= (1 << PA2); // Pullup resistor
|
25 |
|
26 | // Pin Change Interrupt 2
|
27 | PCICR |= (1 << PCIE0);
|
28 | PCMSK0 |= (1 << PCINT2);
|
29 |
|
30 | sei();
|
31 |
|
32 | while (1)
|
33 | {
|
34 | }
|
35 |
|
36 | }
|
37 |
|
38 |
|
39 |
|
40 | ISR (PCINT2_vect)
|
41 | {
|
42 | LED_PORT |= (1 << LED1 );
|
43 | }
|
Wo ich nun nicht 100% ig sicher bin:
Ich habe nun einen Taster zwischen GND und PA2 gelegt.
Eigentlich müssten ja nun auch noch +5V an PA2 -- da der nun aber jetzt
schon die ganze Zeit resettet, habe ich Angst, dass da nun irgendwie ein
Kurzschluss oder so ist und ich den avr kille...
Beste Grüße,
Lars