Guten Abend,
hab hier ein Problem mit meinem Code.
Laut AVR Studio müsste es eigentlich hinhauen. In der Simulation ändert
sich laufend der Wert von OCR1A, was dem Ausgang PB1 des Atmega8
entsprechen sollte.
Jedoch leuchtet die LED ständig mit konstanter Helligkeit auf, wenn ich
dieses Programm in den Controller spiele.
1 | #include <avr/io.h>
|
2 | #ifndef F_CPU
|
3 | #define F_CPU 12000000UL
|
4 | #warning "F_CPU war noch nicht definiert, wird nun mit 12MHz definiert"
|
5 | #endif
|
6 | #include <util/delay.h>
|
7 | #include <stdint.h>
|
8 | uint16_t i;
|
9 | int main()
|
10 |
|
11 | {
|
12 |
|
13 | DDRB = (1 << PB1 ); //ATMega8, OCR1A Ausgang
|
14 | DDRD |= (1<<DDD0) | (1<<DDD1); //Unwichtig!, Wären definierte Eingänge
|
15 | TCCR1A = (1<<COM1A1) | (1<<WGM11);
|
16 | TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
|
17 | ICR1 = 0x6FFF;
|
18 | OCR1A = (0x6FFF - i); //Helligkeit beeinflußen
|
19 |
|
20 | while( 1 ) {
|
21 | i = i + 0x00FF;
|
22 | if (i == 0x5FFF) {
|
23 | i = 0;}
|
24 | main (i);
|
25 |
|
26 | }
|
27 | return 0;
|
28 | }
|
die Delay-Include-Datei ist nur für ne mögliche Verzögerung gedacht,
weshalb ich sie mal drinnen lasse. Aber ich finde einfach keinen Fehler.
Zumindest müsste es meiner Meinung nach hinhauen :D .
Ich hoffe mich kann jemand berichtigen.
Grüßle