From bd6cd13b4246fcc9548f9ccb93c574a86ca06a03 Mon Sep 17 00:00:00 2001 From: Rene Hopf Date: Sat, 10 Jan 2015 22:16:47 +0100 Subject: [PATCH] led comp --- src/comps/led.comp | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main.c | 8 +------- src/setup.c | 21 --------------------- src/setup.h | 1 - 4 files changed, 43 insertions(+), 29 deletions(-) create mode 100644 src/comps/led.comp diff --git a/src/comps/led.comp b/src/comps/led.comp new file mode 100644 index 00000000..de83e390 --- /dev/null +++ b/src/comps/led.comp @@ -0,0 +1,42 @@ +COMP(led); + +HAL_PIN(r) = 0.0; +HAL_PIN(g) = 0.0; +HAL_PIN(y) = 0.0; + +INIT( + RCC_AHB1PeriphClockCmd(LED_R_IO_RCC, ENABLE); + RCC_AHB1PeriphClockCmd(LED_Y_IO_RCC, ENABLE); + RCC_AHB1PeriphClockCmd(LED_G_IO_RCC, ENABLE); + + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + + GPIO_InitStructure.GPIO_Pin = LED_R_PIN; + GPIO_Init(LED_R_PORT, &GPIO_InitStructure); + + GPIO_InitStructure.GPIO_Pin = LED_Y_PIN; + GPIO_Init(LED_Y_PORT, &GPIO_InitStructure); + + GPIO_InitStructure.GPIO_Pin = LED_G_PIN; + GPIO_Init(LED_G_PORT, &GPIO_InitStructure); +); + +RT_OUT( + if(PIN(r) > 0) + GPIO_SetBits(LED_R_PORT,LED_R_PIN); + else + GPIO_ResetBits(LED_R_PORT,LED_R_PIN); + if(PIN(g) > 0) + GPIO_SetBits(LED_G_PORT,LED_G_PIN); + else + GPIO_ResetBits(LED_G_PORT,LED_G_PIN); + if(PIN(y) > 0) + GPIO_SetBits(LED_Y_PORT,LED_Y_PIN); + else + GPIO_ResetBits(LED_Y_PORT,LED_Y_PIN); +); + +ENDCOMP; diff --git a/src/main.c b/src/main.c index 383eea8e..c2ce7741 100644 --- a/src/main.c +++ b/src/main.c @@ -172,7 +172,6 @@ void link_ac_sync_enc(){//berger lahr void DMA2_Stream0_IRQHandler(void){ //5kHz DMA_ClearITPendingBit(DMA2_Stream0, DMA_IT_TCIF0); GPIO_SetBits(GPIOB,GPIO_Pin_4); - GPIO_ResetBits(LED_R_PORT,LED_R_PIN);//led int freq = 5000; float period = 1.0 / freq; //GPIO_ResetBits(GPIOB,GPIO_Pin_3);//messpin @@ -217,11 +216,6 @@ int main(void) setup(); //ADC_SoftwareStartConv(ADC1); - GPIO_SetBits(LED_R_PORT,LED_R_PIN);//led - GPIO_SetBits(LED_Y_PORT,LED_Y_PIN);//led - GPIO_SetBits(LED_G_PORT,LED_G_PIN);//led - - #include "comps/frt.comp" #include "comps/rt.comp" @@ -241,6 +235,7 @@ int main(void) #include "comps/pderiv.comp" //#include "comps/autophase.comp" #include "comps/auto.comp" + #include "comps/led.comp" //#include "comps/vel_observer.comp" @@ -282,7 +277,6 @@ int main(void) while(1) // Do not exit { Wait(10); - GPIO_SetBits(LED_R_PORT,LED_R_PIN);//led period = systime/1000.0 + (1.0 - SysTick->VAL/RCC_Clocks.HCLK_Frequency)/1000.0 - lasttime; lasttime = systime/1000.0 + (1.0 - SysTick->VAL/RCC_Clocks.HCLK_Frequency)/1000.0; for(int i = 0; i < hal.nrt_func_count; i++){ diff --git a/src/setup.c b/src/setup.c index 007e5504..dc6bd6ce 100644 --- a/src/setup.c +++ b/src/setup.c @@ -24,7 +24,6 @@ void setup(){ setup_usart(); setup_res(); - setup_led(); // systick timer systime = 0; @@ -40,26 +39,6 @@ void setup(){ #endif } -void setup_led(){ - RCC_AHB1PeriphClockCmd(LED_R_IO_RCC, ENABLE); - RCC_AHB1PeriphClockCmd(LED_Y_IO_RCC, ENABLE); - RCC_AHB1PeriphClockCmd(LED_G_IO_RCC, ENABLE); - - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - - GPIO_InitStructure.GPIO_Pin = LED_R_PIN; - GPIO_Init(LED_R_PORT, &GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Pin = LED_Y_PIN; - GPIO_Init(LED_Y_PORT, &GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Pin = LED_G_PIN; - GPIO_Init(LED_G_PORT, &GPIO_InitStructure); -} - void setup_usart(){ GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; diff --git a/src/setup.h b/src/setup.h index 74486d3e..21fe0b75 100644 --- a/src/setup.h +++ b/src/setup.h @@ -31,7 +31,6 @@ void setup(); void setup_res(); void setup_pwm(); void setup_usart(); -void setup_led(); void SysTick_Handler(void); volatile unsigned int systime;