Hallo
versuche meine ersten Schritte mit einem kleinen Board mit dem Attny261A
zu machen. Dazu verwende ich dieses kleine Programm um 2 LEDs blinken zu
lassen:
1 | #define F_CPU 16000000UL // Angabe der Quarzfrequenz, wichtig für die Zeit
|
2 | #include <util/delay.h> // Einbindung Datei Pause
|
3 | #include <avr/io.h> // Einbindung Datei Ausgänge
|
4 |
|
5 | int main(void)
|
6 | {
|
7 | DDRA=0b11000000; // Port A als Ausgang definiert
|
8 | PORTA=0b11000000;
|
9 | while(1) // Programmschleife
|
10 | {
|
11 | PORTA &= ~(1<<PA6); // Schaltet Pin aus
|
12 | _delay_ms(500); // Pause 500 ms
|
13 | PORTA |= (1<<PA6); // Schaltet Pin ein
|
14 | _delay_ms(500); // Pause 500 ms
|
15 |
|
16 | PORTA &= ~(1<<PA7); // Schaltet Pin aus
|
17 | _delay_ms(500); // Pause 500 ms
|
18 | PORTA |= (1<<PA7); // Schaltet Pin ein
|
19 | _delay_ms(500); // Pause 500 ms
|
20 | }
|
21 | }
|
Das Programm läuft auch. Nur die Zeit stimmt nicht. Verwende einen 16MHz
Keramik Schwinger. Da ich Pausen von 500ms drin habe müstte es doch mit
einer Frequenz von 1Hz blinken. Wenn ich richtig gezählt habe dauert es
ca. 4 Sekunden je Pause. Leider sehe ich meinen Fehler nicht. Woran
könnte es liegen?
LG Berndt