xxx_LED_SOS_Timer_IR_copy

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* mbed BuschA,   */ 
00002 #include "mbed.h"
00003 #include "UP_SOS.h"
00004 //Initialisiere Ausgangspin und Variable
00005 InterruptIn TasteS1(PA_10); //PullUp auf Board; sonst PA_1
00006 
00007 void ISR_SOS (void)   //ISRotine..
00008         {
00009               TIM6->CR1=1;                  //CEN=1 Timer start
00010         }
00011 
00012 void ISR_TIM6 (void)
00013 {
00014     TIM6->SR=0; //UIF =0 (Update Interrupt Flag)
00015     TIM6->CR1=0;                  //CEN=0 Timer stopp
00016     UP_SOS_kurz();                //Funktionsaufrufe...
00017     UP_SOS_lang();
00018     UP_SOS_kurz();
00019     TIM6->CR1=1;                  //CEN=1 Timer startet wieder für 5sec
00020 }
00021 
00022 
00023 void init_TIM6(void)
00024 {
00025   RCC->APB1ENR |= 0b10000;      //Bit 4 => Takt an Timer geben
00026   TIM6->PSC=31999;              //Takt 1ms  => 32Mhz / 32000 (0-31999) => 1Khz => 1ms
00027   TIM6->ARR=5000;               //Zählregister => 5000 => 5000ms
00028   TIM6->CNT=0;                  //bei 0 beginnen 
00029   TIM6->SR=0;                   //UIF = 0  => Überlaufflag
00030   TIM6->DIER=1;                 //UIE = 1 (Update Interrupt Enable)
00031   HAL_NVIC_EnableIRQ(TIM6_IRQn);//
00032   NVIC_SetVector(TIM6_IRQn, (uint32_t)&ISR_TIM6);
00033 }
00034 
00035 void IR_init (void)
00036 {
00037     //TasteS1.mode(PullUp);    // Pull-Up auf Hardware (PullDown)
00038     TasteS1.fall(&ISR_SOS);  //steigende Flanke = rise
00039     TasteS1.enable_irq();   //IR aktivieren
00040 }
00041 int main()
00042 {
00043 init_TIM6();
00044 IR_init();
00045 
00046     while (true) 
00047     {
00048         
00049             {
00050                 
00051             }
00052     }
00053 }
00054 
00055