xxx_LED_SOS_Timer_IR_copy
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Sun Nov 12 2023 19:12:10 by
1.7.2