]> jspc29.x-matter.uni-frankfurt.de Git - mvd_firmware.git/commitdiff
added GPIO output functions
authorMichael Wiebusch <stratomaster@gmx.net>
Thu, 12 Dec 2013 13:25:57 +0000 (14:25 +0100)
committerMichael Wiebusch <stratomaster@gmx.net>
Thu, 12 Dec 2013 13:25:57 +0000 (14:25 +0100)
china_devel_board/test001/src/generatePinConstants/generate.sh [new file with mode: 0755]
china_devel_board/test001/src/generatePinConstants/pins.tmp [new file with mode: 0644]
china_devel_board/test001/src/main.c
china_devel_board/test001/src/periph_conf.c
china_devel_board/test001/src/periph_conf.h
china_devel_board/test001/src/stm32_eval.h

diff --git a/china_devel_board/test001/src/generatePinConstants/generate.sh b/china_devel_board/test001/src/generatePinConstants/generate.sh
new file mode 100755 (executable)
index 0000000..e9f6eaa
--- /dev/null
@@ -0,0 +1,86 @@
+#!/bin/bash
+
+#### number of pins!
+no_pins=26
+
+echo "found the following uC GPIO lines:"
+echo
+cat ../periph_conf.h | grep _PIN | perl -pi -e 's/#define //' \
+| perl -pi -e 's/_PIN.*//' | head -n $no_pins | tee pins.tmp
+echo
+echo ">pins.tmp"
+echo
+
+
+##### print the enum
+echo "typedef enum"
+echo "{"
+c=0
+for entry in $(cat pins.tmp); do
+  if [ $c == $[ $no_pins - 1] ]; then
+    colon=""
+  else
+    colon=","
+  fi
+  echo "  $entry = $c$colon"
+  c=$[ c + 1 ]
+done
+echo "} CB_GPIO_Pin_TypeDef;"
+#####
+
+echo
+echo
+
+##### print the PORTs
+echo "GPIO_TypeDef* CB_GPIO_PORT[$no_pins] ="
+echo "{"
+c=0
+for entry in $(cat pins.tmp); do
+  if [ $c == $[ $no_pins - 1] ]; then
+    colon=""
+  else
+    colon=","
+  fi
+  echo "  "$entry"_GPIO_PORT"$colon
+  c=$[ c + 1 ]
+done
+echo "};"
+#####
+
+echo
+echo
+
+##### print the PINs
+echo "const uint16_t CB_GPIO_PIN[$no_pins] ="
+echo "{"
+c=0
+for entry in $(cat pins.tmp); do
+  if [ $c == $[ $no_pins - 1] ]; then
+    colon=""
+  else
+    colon=","
+  fi
+  echo "  "$entry"_PIN"$colon
+  c=$[ c + 1 ]
+done
+echo "};"
+#####
+
+echo
+echo
+
+##### print the PINs
+echo "const uint32_t CB_GPIO_CLK[$no_pins] ="
+echo "{"
+c=0
+for entry in $(cat pins.tmp); do
+  if [ $c == $[ $no_pins - 1] ]; then
+    colon=""
+  else
+    colon=","
+  fi
+  echo "  "$entry"_GPIO_CLK"$colon
+  c=$[ c + 1 ]
+done
+echo "};"
+#####
\ No newline at end of file
diff --git a/china_devel_board/test001/src/generatePinConstants/pins.tmp b/china_devel_board/test001/src/generatePinConstants/pins.tmp
new file mode 100644 (file)
index 0000000..4fbce1f
--- /dev/null
@@ -0,0 +1,26 @@
+LED1
+LED2
+LED3
+LED4
+JTAGEN0
+JTAGEN1
+SENSOREN0
+SENSOREN1
+DISD0
+DISA0
+DISD1
+DISA1
+ENAD0
+ENAA0
+ENAD1
+ENAA1
+OVCD_C0
+OVCA_C0
+OVCD_C1
+OVCA_C1
+MUXADDR0
+MUXADDR1
+ZEROCALIB
+ADC_CONV0
+ADC_CONV1
+DAC_CS
index ec6c558569dcb712be58c05def973648bbae3908..8b3ab1c98a7cd21793cac696191d45073447508f 100644 (file)
@@ -45,10 +45,10 @@ int main(int argc, char *argv[]) {
 
   
 // configure timer interval
-//     SysTick_Config(16777215); // standard
+       SysTick_Config(16777215); // standard
 //     SysTick_Config(7200000); // 10 Hz interrupt
 //     SysTick_Config(720000); // 100 hz
-       SysTick_Config(72000); // 1000 hz
+//     SysTick_Config(72000); // 1000 hz
 
 
   // UART init the StdPeriphLib way
@@ -62,22 +62,30 @@ int main(int argc, char *argv[]) {
   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
 
-  STM_EVAL_COMInit(COM1, &USART_InitStructure);
+//   STM_EVAL_COMInit(COM1, &USART_InitStructure);
 //   STM_EVAL_COMInit(COM2, &USART_InitStructure);
   
   
   
   // try the LED gpio stuff from the evaluation boards
   
-  STM_EVAL_LEDInit(LED1);
-  STM_EVAL_LEDInit(LED2);
-  STM_EVAL_LEDInit(LED3);
-  STM_EVAL_LEDInit(LED4);
-  STM_EVAL_LEDOn(LED1);
-  STM_EVAL_LEDOn(LED2);
-  STM_EVAL_LEDOn(LED3);
-  STM_EVAL_LEDOn(LED4);
-  
+//   STM_EVAL_LEDInit(LED1);
+//   STM_EVAL_LEDInit(LED2);
+//   STM_EVAL_LEDInit(LED3);
+//   STM_EVAL_LEDInit(LED4);
+//   STM_EVAL_LEDOn(LED1);
+//   STM_EVAL_LEDOn(LED2);
+//   STM_EVAL_LEDOn(LED3);
+//   STM_EVAL_LEDOn(LED4);
+  CB_GPIO_Out_Init(LED1);
+  CB_GPIO_Out_Init(LED2);
+  CB_GPIO_Out_Init(LED3);
+  CB_GPIO_Out_Init(LED4);
+  
+  CB_GPIO_Out_Hi(LED1);
+  CB_GPIO_Out_Hi(LED2);
+  CB_GPIO_Out_Lo(LED3);
+  CB_GPIO_Out_Hi(LED4);
 
 
   USART_SendData(EVAL_COM1, (uint8_t) 'A');
@@ -85,7 +93,7 @@ int main(int argc, char *argv[]) {
   USART_SendData(EVAL_COM1, (uint8_t) 'C');
 //   USART_SendData(EVAL_COM2, (uint8_t) 'B');
   
-  init_SPI2();
+//   init_SPI2();
 
   SPIBuffer[0] = 0x1234;
   SPIBuffer[1] = 0x5678;
@@ -221,6 +229,13 @@ void SysTick_Handler(void)
 //   STM_EVAL_LEDToggle(LED4);
 //   
 
+//   CB_GPIO_Out_Toggle(LED1);
+//   CB_GPIO_Out_Toggle(LED2);
+//   CB_GPIO_Out_Toggle(LED3);
+//   CB_GPIO_Out_Toggle(LED4);
+
+  return;
+  
   uint8_t i;
   for( i = 0; i<10; i++){
     USART_SendData(EVAL_COM1, character);
index acbed60cc755e950fc77e5bc1254e494b8fa418e..a52c34db4514349e249a8f29ddf028d2623d92a2 100644 (file)
 #include "stm32f10x_i2c.h"\r
 #include "stm32f10x_dma.h"\r
 \r
-/** @addtogroup Utilities\r
-  * @{\r
-  */ \r
-\r
-/** @addtogroup STM32_EVAL\r
-  * @{\r
-  */ \r
-\r
-/** @addtogroup STM32100E_EVAL\r
-  * @{\r
-  */ \r
-      \r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL \r
-  * @brief This file provides firmware functions to manage Leds, push-buttons, \r
-  *        COM ports, SD card on SDIO, serial flash (sFLASH), serial EEPROM (sEE) \r
-  *        and temperature sensor (LM75) available on STM32100E-EVAL evaluation \r
-  *        board from STMicroelectronics.\r
-  * @{\r
-  */ \r
-\r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL_Private_TypesDefinitions\r
-  * @{\r
-  */ \r
-/**\r
-  * @}\r
-  */ \r
-\r
-\r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL_Private_Defines\r
-  * @{\r
-  */ \r
-/**\r
-  * @}\r
-  */ \r
+// by micha,\r
 \r
+GPIO_TypeDef* CB_GPIO_PORT[26] =\r
+{\r
+  LED1_GPIO_PORT,\r
+  LED2_GPIO_PORT,\r
+  LED3_GPIO_PORT,\r
+  LED4_GPIO_PORT,\r
+  JTAGEN0_GPIO_PORT,\r
+  JTAGEN1_GPIO_PORT,\r
+  SENSOREN0_GPIO_PORT,\r
+  SENSOREN1_GPIO_PORT,\r
+  DISD0_GPIO_PORT,\r
+  DISA0_GPIO_PORT,\r
+  DISD1_GPIO_PORT,\r
+  DISA1_GPIO_PORT,\r
+  ENAD0_GPIO_PORT,\r
+  ENAA0_GPIO_PORT,\r
+  ENAD1_GPIO_PORT,\r
+  ENAA1_GPIO_PORT,\r
+  OVCD_C0_GPIO_PORT,\r
+  OVCA_C0_GPIO_PORT,\r
+  OVCD_C1_GPIO_PORT,\r
+  OVCA_C1_GPIO_PORT,\r
+  MUXADDR0_GPIO_PORT,\r
+  MUXADDR1_GPIO_PORT,\r
+  ZEROCALIB_GPIO_PORT,\r
+  ADC_CONV0_GPIO_PORT,\r
+  ADC_CONV1_GPIO_PORT,\r
+  DAC_CS_GPIO_PORT\r
+};\r
+\r
+\r
+const uint16_t CB_GPIO_PIN[26] =\r
+{\r
+  LED1_PIN,\r
+  LED2_PIN,\r
+  LED3_PIN,\r
+  LED4_PIN,\r
+  JTAGEN0_PIN,\r
+  JTAGEN1_PIN,\r
+  SENSOREN0_PIN,\r
+  SENSOREN1_PIN,\r
+  DISD0_PIN,\r
+  DISA0_PIN,\r
+  DISD1_PIN,\r
+  DISA1_PIN,\r
+  ENAD0_PIN,\r
+  ENAA0_PIN,\r
+  ENAD1_PIN,\r
+  ENAA1_PIN,\r
+  OVCD_C0_PIN,\r
+  OVCA_C0_PIN,\r
+  OVCD_C1_PIN,\r
+  OVCA_C1_PIN,\r
+  MUXADDR0_PIN,\r
+  MUXADDR1_PIN,\r
+  ZEROCALIB_PIN,\r
+  ADC_CONV0_PIN,\r
+  ADC_CONV1_PIN,\r
+  DAC_CS_PIN\r
+};\r
+\r
+\r
+const uint32_t CB_GPIO_CLK[26] =\r
+{\r
+  LED1_GPIO_CLK,\r
+  LED2_GPIO_CLK,\r
+  LED3_GPIO_CLK,\r
+  LED4_GPIO_CLK,\r
+  JTAGEN0_GPIO_CLK,\r
+  JTAGEN1_GPIO_CLK,\r
+  SENSOREN0_GPIO_CLK,\r
+  SENSOREN1_GPIO_CLK,\r
+  DISD0_GPIO_CLK,\r
+  DISA0_GPIO_CLK,\r
+  DISD1_GPIO_CLK,\r
+  DISA1_GPIO_CLK,\r
+  ENAD0_GPIO_CLK,\r
+  ENAA0_GPIO_CLK,\r
+  ENAD1_GPIO_CLK,\r
+  ENAA1_GPIO_CLK,\r
+  OVCD_C0_GPIO_CLK,\r
+  OVCA_C0_GPIO_CLK,\r
+  OVCD_C1_GPIO_CLK,\r
+  OVCA_C1_GPIO_CLK,\r
+  MUXADDR0_GPIO_CLK,\r
+  MUXADDR1_GPIO_CLK,\r
+  ZEROCALIB_GPIO_CLK,\r
+  ADC_CONV0_GPIO_CLK,\r
+  ADC_CONV1_GPIO_CLK,\r
+  DAC_CS_GPIO_CLK\r
+};\r
 \r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL_Private_Macros\r
-  * @{\r
-  */ \r
-/**\r
-  * @}\r
-  */ \r
 \r
 \r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL_Private_Variables\r
-  * @{\r
-  */ \r
 GPIO_TypeDef* GPIO_PORT[LEDn] = {LED1_GPIO_PORT, LED2_GPIO_PORT, LED3_GPIO_PORT,\r
                                  LED4_GPIO_PORT};\r
 const uint16_t GPIO_PIN[LEDn] = {LED1_PIN, LED2_PIN, LED3_PIN,\r
@@ -150,34 +199,26 @@ const uint16_t COM_RX_PIN[COMn] = {EVAL_COM1_RX_PIN, EVAL_COM2_RX_PIN};
 \r
 DMA_InitTypeDef   sEEDMA_InitStructure;\r
 \r
-/**\r
-  * @}\r
-  */ \r
 \r
 \r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL_Private_FunctionPrototypes\r
-  * @{\r
-  */ \r
 \r
-/**\r
-  * @}\r
-  */ \r
+void CB_GPIO_Out_Init(CB_GPIO_Pin_TypeDef Pin)\r
+{\r
+  GPIO_InitTypeDef  GPIO_InitStructure;\r
+  \r
+  /* Enable the GPIO_LED Clock */\r
+  RCC_APB2PeriphClockCmd(CB_GPIO_CLK[Pin], ENABLE);\r
+\r
+  /* Configure the GPIO_LED pin */\r
+  GPIO_InitStructure.GPIO_Pin = CB_GPIO_PIN[Pin];\r
+  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;\r
+  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;\r
+\r
+  GPIO_Init(CB_GPIO_PORT[Pin], &GPIO_InitStructure);\r
+}\r
 \r
 \r
-/** @defgroup STM32100E_EVAL_LOW_LEVEL_Private_Functions\r
-  * @{\r
-  */ \r
 \r
-/**\r
-  * @brief  Configures LED GPIO.\r
-  * @param  Led: Specifies the Led to be configured. \r
-  *   This parameter can be one of following parameters:\r
-  *     @arg LED1\r
-  *     @arg LED2\r
-  *     @arg LED3\r
-  *     @arg LED4\r
-  * @retval None\r
-  */\r
 void STM_EVAL_LEDInit(Led_TypeDef Led)\r
 {\r
   GPIO_InitTypeDef  GPIO_InitStructure;\r
@@ -208,6 +249,11 @@ void STM_EVAL_LEDOn(Led_TypeDef Led)
   GPIO_PORT[Led]->BSRR = GPIO_PIN[Led];     \r
 }\r
 \r
+void CB_GPIO_Out_Hi(CB_GPIO_Pin_TypeDef Pin)\r
+{\r
+  CB_GPIO_PORT[Pin]->BSRR = CB_GPIO_PIN[Pin];     \r
+}\r
+\r
 /**\r
   * @brief  Turns selected LED Off.\r
   * @param  Led: Specifies the Led to be set off. \r
@@ -223,6 +269,11 @@ void STM_EVAL_LEDOff(Led_TypeDef Led)
   GPIO_PORT[Led]->BRR = GPIO_PIN[Led];    \r
 }\r
 \r
+void CB_GPIO_Out_Lo(CB_GPIO_Pin_TypeDef Pin)\r
+{\r
+  CB_GPIO_PORT[Pin]->BRR = CB_GPIO_PIN[Pin];     \r
+}\r
+\r
 /**\r
   * @brief  Toggles the selected LED.\r
   * @param  Led: Specifies the Led to be toggled. \r
@@ -238,6 +289,10 @@ void STM_EVAL_LEDToggle(Led_TypeDef Led)
   GPIO_PORT[Led]->ODR ^= GPIO_PIN[Led];\r
 }\r
 \r
+void CB_GPIO_Out_Toggle(CB_GPIO_Pin_TypeDef Pin)\r
+{\r
+  CB_GPIO_PORT[Pin]->ODR ^= CB_GPIO_PIN[Pin];\r
+}\r
 /**\r
   * @brief  Configures Button GPIO and EXTI Line.\r
   * @param  Button: Specifies the Button to be configured.\r
index b07209a8748c0be9e70add11d26064555e10a244..196d57428229b82cf1a2afbb448844821fac1634 100644 (file)
 #define LED2_GPIO_PORT                   GPIOC\r
 #define LED2_GPIO_CLK                    RCC_APB2Periph_GPIOC  \r
 \r
+// not working\r
 #define LED3_PIN                         GPIO_Pin_7  \r
 #define LED3_GPIO_PORT                   GPIOC\r
 #define LED3_GPIO_CLK                    RCC_APB2Periph_GPIOC  \r
-\r
+// not working\r
 #define LED4_PIN                         GPIO_Pin_6\r
 #define LED4_GPIO_PORT                   GPIOC\r
 #define LED4_GPIO_CLK                    RCC_APB2Periph_GPIOC\r
 #define DAC_CS_GPIO_PORT                 GPIOC\r
 #define DAC_CS_GPIO_CLK                  RCC_APB2Periph_GPIOC\r
 \r
+\r
+\r
+// give me just the line names: (bash)\r
+// cat periph_conf.h | grep _PIN | perl -pi -e 's/#define //' | perl -pi -e 's/_PIN.*//'\r
+\r
+\r
+typedef enum\r
+{\r
+  LED1 = 0,\r
+  LED2 = 1,\r
+  LED3 = 2,\r
+  LED4 = 3,\r
+  JTAGEN0 = 4,\r
+  JTAGEN1 = 5,\r
+  SENSOREN0 = 6,\r
+  SENSOREN1 = 7,\r
+  DISD0 = 8,\r
+  DISA0 = 9,\r
+  DISD1 = 10,\r
+  DISA1 = 11,\r
+  ENAD0 = 12,\r
+  ENAA0 = 13,\r
+  ENAD1 = 14,\r
+  ENAA1 = 15,\r
+  OVCD_C0 = 16,\r
+  OVCA_C0 = 17,\r
+  OVCD_C1 = 18,\r
+  OVCA_C1 = 19,\r
+  MUXADDR0 = 20,\r
+  MUXADDR1 = 21,\r
+  ZEROCALIB = 22,\r
+  ADC_CONV0 = 23,\r
+  ADC_CONV1 = 24,\r
+  DAC_CS = 25\r
+} CB_GPIO_Pin_TypeDef;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
 /**\r
   * @}\r
   */\r
@@ -456,6 +499,12 @@ void STM_EVAL_LEDInit(Led_TypeDef Led);
 void STM_EVAL_LEDOn(Led_TypeDef Led);\r
 void STM_EVAL_LEDOff(Led_TypeDef Led);\r
 void STM_EVAL_LEDToggle(Led_TypeDef Led);\r
+\r
+void CB_GPIO_Out_Init(CB_GPIO_Pin_TypeDef Pin);\r
+void CB_GPIO_Out_Hi(CB_GPIO_Pin_TypeDef Pin);\r
+void CB_GPIO_Out_Lo(CB_GPIO_Pin_TypeDef Pin);\r
+void CB_GPIO_Out_Toggle(CB_GPIO_Pin_TypeDef Pin);\r
+\r
 void STM_EVAL_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode);\r
 uint32_t STM_EVAL_PBGetState(Button_TypeDef Button);\r
 void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct);\r
index e00f0250a9c6ea270725a922243cd508e39839fa..b964a9d0712063a6f9f0c03cf0d16c6088fc201b 100644 (file)
 /** @defgroup STM32_EVAL_Exported_Types\r
   * @{\r
   */\r
+\r
+// garbage:\r
 typedef enum \r
 {\r
-  LED1 = 0,\r
-  LED2 = 1,\r
-  LED3 = 2,\r
-  LED4 = 3\r
+  xLED1 = 0,\r
+  xLED2 = 1,\r
+  xLED3 = 2,\r
+  xLED4 = 3\r
 } Led_TypeDef;\r
 \r
 typedef enum \r