MEL_Kings / Mbed 2 deprecated Praktikum_2_4_AMSL_v2

Dependencies:   C12832_lcd mbed

Fork of Praktikum_2_4_ADC by MEL_Kings

Revision:
0:8a8d53cb84e8
Child:
1:660fec290722
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Mar 07 10:20:07 2018 +0000
@@ -0,0 +1,50 @@
+// Example to set up an interrupt based on the LPC TIMER0 match register, sford
+ 
+#include "mbed.h"
+
+DigitalOut myled(LED1);
+DigitalOut irqled(LED2);
+
+void myhandler() {                                      //Interrupt Service Routine, wird durch den Timer0_Vektor gestartet
+    // do something!
+    irqled = !irqled;
+    
+    // clear the TIMER0 interrupt
+    LPC_TIM0->IR = 1;                                   //Reset Timer0 Interrupt Flag
+}
+
+int main() {
+    // power up TIMER0 (PCONP[1])
+    LPC_SC->PCONP |= 1 << 1; 
+
+    // reset and set TIMER0 to timer mode
+    LPC_TIM0->TCR = 0x2;  
+    LPC_TIM0->CTCR = 0x0; 
+    
+    // set no prescaler
+    LPC_TIM0->PR = 0;
+
+    // calculate period (1 interrupt every second)
+    uint32_t period = SystemCoreClock / 20;                              //Period ist die Periodenlänge     /4 ursprünlgich für eine Sekunde
+                                                                        //SystemCoreClock ist eine Konstante mit dem Wert
+
+    // set match register and enable interrupt    
+    LPC_TIM0->MR0 = period;                                             //Vergleichswert des Timers wird gesetzt mit Period
+    LPC_TIM0->MCR |= 1 << 0;    // interrupt on match                   //Einstellung, dass ein Interrupt ausgelöst wird beim Match
+    LPC_TIM0->MCR |= 1 << 1;    // reset on match                       //Einstellung, dass der Timerwert auf Null zurückgesetzt wird bei Match
+
+    // enable the vector in the interrupt controller
+    NVIC_SetVector(TIMER0_IRQn, (uint32_t)&myhandler);                  //Zuordunung der InterruptServiceRoutine (Handler) zum Vektor von Timer0
+    NVIC_EnableIRQ(TIMER0_IRQn);                                        //Timer Interrupt wird enabled
+
+    // start the timer
+    LPC_TIM0->TCR = 1;                                                  //Einstellung, dass der Timer gestartet wird
+
+    // hang around!   
+    while(1) {                                                          //while Schleife, in der die erste LED getoggelt wird
+        myled = 1;
+        wait(0.2);
+        myled = 0;
+        wait(0.2);
+    }
+}
\ No newline at end of file