--- /dev/null
+#!/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
--- /dev/null
+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
// 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
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');
USART_SendData(EVAL_COM1, (uint8_t) 'C');
// USART_SendData(EVAL_COM2, (uint8_t) 'B');
- init_SPI2();
+// init_SPI2();
SPIBuffer[0] = 0x1234;
SPIBuffer[1] = 0x5678;
// 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);
#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
\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
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
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
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
#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
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
/** @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