Download - Projektlabor
Download - Projektlabor
Download - Projektlabor
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Anhang2: Frequenzaeler<br />
D:\juergen\Projekt\Projekt\prog\Frequenzzaehler\settings.h<br />
1: /****************************************************<br />
2: * KONSTANTEN *<br />
3: ****************************************************/<br />
4: // Taktfrequenz des Mikrocontrollers<br />
5: #define FCK 14745600 // 14,7456MHz<br />
6: //#define FCK 10000000 // 10MHz<br />
7: #define PERIODEN 50 // Anzahl der Perioden pro Messung<br />
8: #define ZEITBASIS FCK/8 // Zeitbasis für die<br />
9: #define NENNER PERIODEN*ZEITBASIS // Nenner für die Frequenzberechnung<br />
10: #define START_PER 1 // Perioden, die gemessen werden bevor etwas<br />
angezeigt wird<br />
11:<br />
12: #define UART<br />
13: //#define LCD<br />
D:\juergen\Projekt\Projekt\prog\Frequenzzaehler\Frequenzzaehler.c<br />
1: /****************************************************<br />
2: * HEADER-DATEIEN *<br />
3: ****************************************************/<br />
4:<br />
5: #include <br />
6: #include <br />
7: #include <br />
8: #include <br />
9: #include <br />
10: #include <br />
11:<br />
12: #include "settings.h"<br />
13:<br />
14: #ifdef LCD<br />
15: #include "lcd.h"<br />
16: #endif<br />
17:<br />
18: #ifdef UART<br />
19: #include "uart.h"<br />
20: #endif<br />
21:<br />
22: /****************************************************<br />
23: * FUNKTIONS PROTOTYPEN *<br />
24: ****************************************************/<br />
25: void init_timer(); // initialisiert den Timer<br />
26: void init_ports(); // initialisiert die Ports des Mikrocontrollers<br />
27: void init_lcd(); // initialisiert das LCD-Display<br />
28: void put_to_lcd(uint16_t mw); // gibt einen Messwert auf dem<br />
29: // LCD-Display aus<br />
30: uint16_t berechne(); // berechnet die Frequenz<br />
31: void check_and_send(uint16_t f); // überprüft was angefordert wird und<br />
sendet es<br />
32:<br />
33:<br />
34: /****************************************************<br />
35: * GLAOBALE-VARIABLEN *<br />
36: ****************************************************/<br />
37: volatile uint32_t overflows; // Überlaufzähler<br />
38: volatile uint32_t ov; // Zwischenspeicher zur Ausgabe des<br />
Überlaufzählers<br />
39: volatile uint32_t dt; // Periodendauer<br />
40: volatile uint8_t wait; // wait-Flag, zeigt an ob messung läuft<br />
41:<br />
42: volatile uint16_t f_max; // maximale gemesseneFrequenz<br />
43: volatile uint16_t f_min; // minimlae gemessene Frequenz<br />
44:<br />
45: /****************************************************<br />
46: * INTERRUPT-ROUTINEN *<br />
47: ****************************************************/<br />
48:<br />
217