Bruno W. schrieb:
> Ich habe AVR Studio 6.0.1843, werd ich gleich mal updaten.
> Zum vorenthaltenen Code:
>
1 | > #define F_CPU 1200000UL
|
2 | >
|
3 | > #include <avr/io.h>
|
4 | > #include <avr/interrupt.h>
|
5 | >
|
6 | > uint_t16 z = 1;
|
7 | >
|
8 | >
|
9 | > TCCR0A |= (1 << WGM01);
|
10 | > TCCR0B |= (1 << CS01);
|
11 | >
|
12 | > OCR0A = 149;
|
13 | >
|
14 | > TIMSK0 |= (1 << OCIE0A);
|
15 | >
|
dacht ichs mir doch.
Davon, dass ausführbarer Code in C in einer Funktion stehen muss, hast
du noch nie gehört?
Na ja. Jetzt weißt du wenigstens, dass dann seltsame und undurchsichtige
Fehlermeldungen kommen, wenn der Compiler versucht, das Konglomerat als
die Definition von Variablen aufzufassen und auf keinen grünen Zweig
damit kommt.
1 | #define F_CPU 1200000UL
|
2 |
|
3 | #include <avr/io.h>
|
4 | #include <avr/interrupt.h>
|
5 |
|
6 | uint16_t z = 1;
|
7 |
|
8 | ISR(TIM0_COMPA_vect)
|
9 | {
|
10 | if(z == 1000)
|
11 | {
|
12 | PORTB ^= (1<<PB3);
|
13 | z = 1;
|
14 | }
|
15 | else
|
16 | {
|
17 | z++;
|
18 | }
|
19 | }
|
20 |
|
21 | int main(void)
|
22 | {
|
23 | DDRB |= (1<<PB3);
|
24 |
|
25 | TCCR0A |= (1 << WGM01);
|
26 | TCCR0B |= (1 << CS01);
|
27 |
|
28 | OCR0A = 149;
|
29 |
|
30 | TIMSK0 |= (1 << OCIE0A);
|
31 |
|
32 | sei();
|
33 |
|
34 | while(1)
|
35 | {
|
36 |
|
37 | }
|
38 | }
|
PS: Die restlichen Fehler hab ich dir auch gleich noch korrigiert.
Lass erst mal Timer Timer sein und sieh zu, dass du die noch banaleren
Grundlagen in den Griff kriegst. WIe zb. Portansteuerung.