Servus beisammen, Folgender Code baut offensichtlich ziemlich Mist und ich finde nicht heraus warum:
1 | #define F_PROG 39
|
2 | #define T0_PSC 1024
|
3 | |
4 | #define W_OPOS 0b11100000
|
5 | #define W_POW 0b11010000
|
6 | |
7 | #ifndef F_CPU
|
8 | #define F_CPU 10000000
|
9 | #endif
|
10 | |
11 | |
12 | |
13 | // Berechnungen
|
14 | #define F_T0 (F_CPU/T0_PSC)
|
15 | #define TIMER0_TOP (2*F_T0/F_PROG+1)/2 // clever runden
|
16 | #define F_PROG_REAL (F_CPU/TIMER0_TOP/T0_PSC) // Reale Programmfrequenz
|
17 | #define F_PROG_ERR ((F_PROG_REAL*1000)/F_PROG-1000) // Fehler in Promille
|
18 | #if (TIMER0_TOP > 255)
|
19 | #error "Programmfrequenz kann mit dem Prescaler von Timer0 nicht eingestellt werden!"
|
20 | #endif
|
21 | #if ((F_PROG_ERR>100) || (F_PROG_ERR<-100)) // max. +/-100 Promille Fehler
|
22 | #error "Systematischer Fehler der Programmfrequenz grösser 10 Prozent und damit zu hoch!"
|
23 | |
24 | |
25 | |
26 | |
27 | // Ab hier nurnoch Debugausgabe
|
28 | #define TEST (F_CPU/TIMER0_TOP)
|
29 | #endif
|
30 | #if (F_PROG==39)
|
31 | #error "F_PROG==39"
|
32 | #endif
|
33 | #if (F_T0==9765)
|
34 | #error "F_T0==9765"
|
35 | #endif
|
36 | #if (TIMER0_TOP==250)
|
37 | #error "TIMER0_TOP==250"
|
38 | #endif
|
39 | #if (F_PROG_REAL==9)
|
40 | #error "F_PROG_REAL"
|
41 | #endif
|
42 | #if (F_PROG_ERR==-770)
|
43 | #error "F_PROG_ERR==-770"
|
44 | #endif
|
45 | #if (TEST==9980)
|
46 | #error "TEST==9980"
|
47 | #endif
|
Ich erhalte dabei folgende Fehler:
1 | ../def_ini.h:44:4: error: #error "Systematischer Fehler der Programmfrequenz grösser 10 Prozent und damit zu hoch!" |
2 | ../def_ini.h:47:4: error: #error "F_PROG==39" |
3 | ../def_ini.h:50:4: error: #error "F_T0==9765" |
4 | ../def_ini.h:53:4: error: #error "TIMER0_TOP==250" |
5 | ../def_ini.h:56:4: error: #error "F_PROG_REAL==9" |
6 | ../def_ini.h:59:4: error: #error "F_PROG_ERR==-770" |
7 | ../def_ini.h:62:4: error: #error "TEST==9980" |
Mach ich was falsch? Wo könnte der Fehler liegen? Danke schonmal euch allen lg Leo