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 ;)