#include "p18f45k20.h" #include "delays.h" // Hier werden du die möglichen Frequenzen festgelegt #define OSC_0250_kHz 0b100111111 // Niedrige Freq. 0b00011111 #define OSC_8000_kHz 0b111011111 // Hohe Freq. 0b00100000 #define Switch_Pin PORTBbits.RB0 // Taster (Switch) void main (void) { // Einstellungen für Taster INTCON2bits.RBPU = 0; // INTCON2: INTERRUPT CONTROL 2 REGISTER, // RBPU: PORTB Pull-up Enable bit // PORTB pull-up-Widerstände werden in Verbindung mit WPUP aktiviert WPUB = 0b11111111; // aktiviert Pullup-Widerstände on RB ANSELH = 0b00001111; // AN8-12 are digital inputs (AN12 on RB0) TRISB = 0b00000001; // PORTB bit 0 (connected to switch) is input (1) // Einstellungen für die LEDs TRISD = 0b00000000; // PORTD bit 0 bis 7 werden als Ausgang aktiviert LATD = 0; // Alle PORTD-Ausgänge LOW while (1) // While-Schleife wird nie verlassen da die Bedingung Wahr immer erfüllt ist { if (Switch_Pin == 0) // Wenn Taster nicht betätigt Inter Oszillatorfrequenz 8000kHz OSCCON = OSC_8000_kHz; // OSCCON = Oscillator Control Register, else // Wenn Taster nicht betätigt Inter Oszillatorfrequenz 02500kHz OSCCON = OSC_0250_kHz; LATD = ~LATD; // toggle LATD, Alle Ausgänge LOW gehen auf HIGH und umgekehrt Delay1KTCYx(100); // Delay 100 x 1000 = 100 000 Cycles; 400ms @ 1MHz } }