/*** Einbinden von Include-Dateien ***/ #include // Standard Ein-/Ausgabefunktionen #include // CC03er-Grundregister #include "lcd_fkts.h" // Funktionsprototypen der Datei lcd_fkts.c #include "cc03er.h" // Funktionsprototypen der Datei cc03er.c unsigned char bit T2 @ 0x90; // Port-Pin P1.0 (= T2; Adresse 90h) bekommt unsigned char bit FF @ 0x91; //Port-Pin P1.1 Fallende Flanke einlesen float TMZ = 1085e-9; //Wert für den Maschinen-Zyklus: /********************************************************************************************/ /*** Start des Hauptprogramms ***************************************************************/ /********************************************************************************************/ void main (void) // Start des Hauptprogramms { unsigned char lcd_txt[21]; // Ausgabe-String für das LC-Display unsigned long perdauer; int drehzahl; // Initialisierung der seriellen Schnittstelle 0 des CC03ers SCON=0x52; TMOD |=0x20; TH1=0xfd; TR1=1; TI=1; // Benötigte SFR-Bits in T2CON C_T2=0; // Timer Betrieb FF = 1; //Pin 1.1 als Eingang konfiguriert CP_RL2=1; //Capture Funktion gewählt EXEN2=1; //negative Flanke am Hardwareanschluss löst ein Capture aus // SFR T2MOD T2MOD=0x00; //Hardwareanschluss als Countereingang //Timer arbeitet nicht als ab- oder aufwärds Zähler RCAP2H = 0; //Capture Register löschen RCAP2L = 0; TR2 = 1; //Timer2 starten perdauer = 256*RCAP2H + RCAP2L; //Capture Register auslesen drehzahl = 60* (1/perdauer); // Drehzahl berechnen sprintf(lcd_txt,"Drehzahl:%5u 1/min",drehzahl); dis_txt(1,1,0,lcd_txt); // String auf LC-Display }