>Jörn Ahrens schrieb:
1 | #define F_CPU 8000000UL
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | int main(void)
|
5 | {
|
6 |
|
7 | sei();
|
8 |
|
9 | long n=0;
|
10 | DDRD |= ( 1<<PD5 );
|
11 | TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1);
|
12 | TCCR1B = (1<<CS10);
|
13 |
|
14 | while(1)
|
15 | {
|
16 |
|
17 | OCR1A = 200;
|
18 |
|
19 | for(n=800000; n>1;--n)
|
20 | {
|
21 | asm volatile ("nop");
|
22 | }
|
23 |
|
24 | OCR1A = 0;
|
25 | for(n=800000; n>1;--n)
|
26 | {
|
27 | asm volatile ("nop");
|
28 | }
|
29 |
|
30 | }
|
31 | }
|
Eigentlich müsste dein Compiler mehrfach Meckern:
1. #include <io,h> fehlt, oder macht das die interrupt.h automatisch.
2. for(n=800000; n>1;--n) //von was für nem Datentyp ist n? In der
Annahme, dass der Compiler als Standarddatentyp unsigned int verwendet,
ist 800000 > 65536. Das sollte dem Compiler auffallen.
Zusätzlich brauchst du die interrupt.h nicht. Die PWM-Einheit des Timers
kann auch ohne Interrupts arbeiten.
PS: T'schuldigung, dass ich das nicht als Zitat poste, aber die
Forensoftware ist der Meinung, dass mein Zitat zu viele Zeilen hat.
>Bitte reduzieren Sie die Anzahl der Zitatzeilen.