From 948194808693d7a52c3718fa274f77bb5b9e27ce Mon Sep 17 00:00:00 2001 From: Fabian Schieder Date: Wed, 25 Feb 2026 12:19:42 +0100 Subject: [PATCH] 25.02.2026 --- ARMV40_FRL.lib | Bin 0 -> 287370 bytes DMA.uvprojx | 138 +++++++++++++--------- DRM.c | 71 ++++++++++++ armv40_frl.h | 303 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 461 insertions(+), 51 deletions(-) create mode 100644 ARMV40_FRL.lib create mode 100644 armv40_frl.h diff --git a/ARMV40_FRL.lib b/ARMV40_FRL.lib new file mode 100644 index 0000000000000000000000000000000000000000..0783348554b1dafa1ec96619b37a009da2552d93 GIT binary patch literal 287370 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 HeD(hT6zmvr literal 0 HcmV?d00001 diff --git a/DMA.uvprojx b/DMA.uvprojx index ff2dd2a..410d300 100644 --- a/DMA.uvprojx +++ b/DMA.uvprojx @@ -7,9 +7,10 @@ - Target 1 + MDDS 0x4 ARM-ADS + 6190000::V6.19::ARMCLANG 1 @@ -47,14 +48,14 @@ 0 1 - .\ + .\Objects\ DMA 1 0 0 1 1 - .\ + .\Listings\ 1 0 0 @@ -125,47 +126,6 @@ 0 16 - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - - - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - - 0 - 0 - - - - - - - - - - - - - - BIN\UL2CM3.DLL - @@ -173,7 +133,7 @@ 0 0 1 - 0 + 1 -1 1 @@ -300,17 +260,17 @@ 0x0 - 0 + 1 0x0 0x0 - 0 + 1 0x0 0x0 - 0 + 1 0x0 0x0 @@ -320,7 +280,7 @@ 0x20000 - 0 + 1 0x0 0x0 @@ -363,7 +323,7 @@ 0 0 0 - 2 + 3 0 0 1 @@ -422,10 +382,86 @@ - Source Group 1 + src + + + DRM.c + 1 + .\DRM.c + + + + + lib + + + ARMV40_FRL.lib + 4 + .\ARMV40_FRL.lib + + + + + ::CMSIS + + + ::Device + + + + + + + + + + + + + + + + + + + RTE\Device\STM32F103RB\RTE_Device.h + + + + + + + + RTE\Device\STM32F103RB\startup_stm32f10x_md.s + + + + + + + + RTE\Device\STM32F103RB\system_stm32f10x.c + + + + + + + + + + + + + DMA + 1 + + + + diff --git a/DRM.c b/DRM.c index e69de29..248ba7c 100644 --- a/DRM.c +++ b/DRM.c @@ -0,0 +1,71 @@ +/* +Name: Schieder Fabian +Datum: 11.02.2026 +Datei: DMA.c + +Hardware: MDDS + +Funktionsbeschreibung: +*/ +#include "stm32f10x.h" +#include "armv40_frl.h" + +double ADC_Volt; +char buffer[24]; +volatile uint16_t adc_values[2]; // adc_values[0] = PA0, adc_values[1] = PA1 + + +void adc_dma_init() +{ + ADC1->SMPR2 = 0x0000002D; // Sample time ADC1 für channel 1 und channel 2 + + RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; // Clock für ADC1 + RCC->AHBENR |= RCC_AHBENR_DMA1EN; // Clock für DMA + + +/*------------------- DMA konfig -------------------*/ + + DMA1_Channel1->CPAR = (uint32_t)&ADC1->DR; // Peripheral Address + DMA1_Channel1->CMAR = (uint32_t)adc_values; // Memory Address + DMA1_Channel1->CNDTR = 2; // 2 Werte: Kanal0 und Kanal1 + + DMA1_Channel1->CCR = + DMA_CCR1_MINC // Memory increment + | DMA_CCR1_MSIZE_0 // Memory 16 bit + | DMA_CCR1_PSIZE_0 // Peripheral 16 bit + | DMA_CCR1_CIRC // Circular mode + | DMA_CCR1_PL_1 // Priority high + | DMA_CCR1_EN; // DMA Enable + + +/*------------------- ADC konfig -------------------*/ + + ADC1->CR1 = ADC_CR1_SCAN; // scan mode + ADC1->CR2 = + ADC_CR2_DMA + | ADC_CR2_CONT + | ADC_CR2_ADON; + + ADC1->SQR1 |= 0x00100000; // 2 mal conversion item in regular sequence + ADC1->SQR2 |= 0x00000000; + ADC1->SQR3 |= 0x00000001; // Set channel 1 as 1st, channel 0 as 2nd + + ADC1->CR2 |= ADC_CR2_ADON; // nochmal setzten startet die Wandlung des ADCs + +} + + +int main(void) +{ + uart3_init(9600); + + RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // Clock für GPIOA + GPIOA->CRL &= 0xFFFFFF00; + + adc_dma_init(); + + while(1) + { + + } +} diff --git a/armv40_frl.h b/armv40_frl.h new file mode 100644 index 0000000..c064f44 --- /dev/null +++ b/armv40_frl.h @@ -0,0 +1,303 @@ +/******************************************************************************/ +/* (C) Copyright HTL - HOLLABRUNN 2009-2020 All rights reserved. AUSTRIA */ +/* */ +/* File Name: armv40_std.h */ +/* Autor: Josef Reisinger/ Günter Frasl */ +/* Version: V40.00 */ +/* Date: 16/05/2023 */ +/* Description: Standard Library für ARM Cortex M3 */ +/******************************************************************************/ +/* History: V1.00 creation */ +/* V1.01 09.06.2010 REJ: */ +/* Add Bit banding Adresses for LED/Switsches Board */ +/* V2.0 19.02.2011 REJ: */ +/* - dil_taster_init, dil_led_init hinzugefügt */ +/* - lcd_setcursor auf 4 zelige anzeige erweiterst */ +/* - Bitbanding Definitiones von Pointer (Adresse der */ +/* Speicherzelle auf Inhalt der Speicherzelle umgestellt */ +/* - Fehler bei Portmodi Settings in Init_led Switsches */ +/* korrigiert */ +/* V3.0 21.09.2020 */ +/* - convert to MMDS Rev9 */ +/* (Elimination DIL Schalter /DIL LEd's, adapt to */ +/* LED/Switches to new port lines, Elimination LCD Display */ +/* Elimination von ton Funktion */ +/* V30.0 06.04.2021 */ +/* - MDDS library adapt UART2 and UART3 */ +/* V40.0 16.05.2023 */ +/* - MDDS library adapt UART2 and UART3 */ +/******************************************************************************/ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __ARMV30_STD_H +#define __ARMV30_STD_H + +/* ----------------------------Includes ---------------------------------------*/ +#include +#include + +/*----------------------------- Define Pins for LED and Swistches--------------*/ +/* ------------------------ Einzel-Portpins im Bitbandbereich festlegen */ + +#define GPIOA_IDR GPIOA_BASE + 2*sizeof(uint32_t) // Calc peripheral address GPIOA IDR +#define GPIOA_ODR GPIOA_BASE + 3*sizeof(uint32_t) +#define GPIOB_IDR GPIOB_BASE + 2*sizeof(uint32_t) +#define GPIOB_ODR GPIOB_BASE + 3*sizeof(uint32_t) // Calc peripheral address GPIOB ODR +#define GPIOC_IDR GPIOC_BASE + 2*sizeof(uint32_t) +#define GPIOC_ODR GPIOC_BASE + 3*sizeof(uint32_t) + +// Calc Bit Band Adress from peripheral address: a = peripheral address b = Bit number +#define BITBAND_PERI(a,b) ((PERIPH_BB_BASE + (a-PERIPH_BASE)*32 + (b*4))) + +#define SW0 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,0))) // PC0 +#define SW1 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,1))) // PC1 +#define SW2 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,2))) // PC2 +#define SW3 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,3))) // PC3 +#define SW4 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,12))) // PC12 +#define SW5 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,13))) // PC13 +#define SW6 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_IDR,6))) // PB6 +#define SW7 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_IDR,7))) // PB7 + +#define PIEZO *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,4))) //Portleitung des Piezo-Summers (PA4) + +#define LED0 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,0))) // PA0 +#define LED1 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,1))) // PA1 +#define LED2 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,2))) // PA2 +#define LED3 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,3))) // PA3 +#define LED4 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,4))) // PA4 +#define LED5 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,5))) // PA5 +#define LED6 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,6))) // PA6 +#define LED7 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,7))) // PA7 + +#ifdef ARMV30_STD_MOD +#define EXPORT +#else +#define EXPORT extern +#endif + +/* ----------------------------Exported functions ---------------------------- */ + +/* ------------------------- Reset and Clock Control -----------------------*/ +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Set System Clock to 72MHz */ +/* Input: none */ +/* return: none */ +/******************************************************************************/ +EXPORT void set_clock_72MHz(void); + +/* ------------------------- LED/ Switches Board Funktions -------------------*/ + +/******************************************************************************/ +/* U N T E R P R O G R A M M: init_leds_switches */ +/* */ +/* Aufgabe: Initialisiert Portleitungen für LED / Schalterplatine */ +/* Input: */ +/* return: */ +/******************************************************************************/ +EXPORT void init_leds_switches(void); + +/*******************************************************************************/ +/* U N T E R P R O G R A M M: set_leds */ +/* */ +/* Aufgabe: gibt hexadezimalen Wert in auf 8 Leds aus */ +/* (an Port 0 angeschlossen) */ +/* Input: value = Wert auf den LEDS gesetzt werden sollen */ +/* return: */ +/******************************************************************************/ +EXPORT void set_leds (char value); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: get_switches */ +/* */ +/* Aufgabe: liest aktuelle Schalterstellung ein */ +/* Input: */ +/* return: aktuelle Schalterstellung */ +/******************************************************************************/ +EXPORT char get_switches(void); + +/* ------------------------- Miscellaneous Funktions --------------------------*/ + + +/******************************************************************************/ +/* U N T E R P R O G R A M M: WAIT_MS */ +/* */ +/* Aufgabe: Wartet die angegebene Anzahl an Millisekunden */ +/* Input: ms = Anzahl der zu wartenden Millisekunden */ +/* return: */ +/******************************************************************************/ +EXPORT void wait_ms(int ms); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: wait_10us */ +/* */ +/* Aufgabe: Wartet 10µs */ +/* Input: */ +/* return: */ +/******************************************************************************/ +EXPORT void wait_10us(void); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Function converts a Nibble(0-F) to an ASCII ('0'-'F') */ +/* Input: nib: Nibble to convert */ +/* Output: nib: Converted Nibble */ +/* return: - */ +/******************************************************************************/ +EXPORT void nib2asc(char *nib); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Function converts an ASCII('0'-'F') to a Nibble(0-F) */ +/* Input: asc: ASCII Code */ +/* Output: asc: Hex Value */ +/* return: - */ +/******************************************************************************/ +EXPORT void asc2nib(char *asc); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Function converts a Hex-Code (00-FF) to an BCD (0-255) */ +/* Input: hex: Hex Value */ +/* return: BCD Value */ +/******************************************************************************/ +EXPORT int hex2bcd(char hex); + + +/* ------------------------- UART Funktionen ----------------------------------*/ + + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Initialisiert UART2 */ +/* Input: Baudrate */ +/* return: */ +/******************************************************************************/ +EXPORT void uart2_init(unsigned long baudrate); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Initialisiert UART3 */ +/* Input: Baudrate */ +/* return: */ +/******************************************************************************/ +EXPORT void uart3_init(unsigned long baudrate); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: liest ein Zeichen von UART2 ein */ +/* Input: */ +/* return: eingelesens Zeichen */ +/******************************************************************************/ +EXPORT char uart2_get_char(void); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines Zeichens auf UART2 */ +/* Input: ch: Zeichen in ASCII Code */ +/* return: */ +/******************************************************************************/ + +EXPORT char uart3_get_char(void); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines Zeichens auf UART3 */ +/* Input: ch: Zeichen in ASCII Code */ +/* return: */ +/******************************************************************************/ +EXPORT void uart2_put_char(char ch); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines 8 Bit Hex Wertes als ASCII String auf UART2 */ +/* Input: */ +/* return: */ +/******************************************************************************/ + +EXPORT void uart3_put_char(char ch); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines 8 Bit Hex Wertes als ASCII String auf UART3 */ +/* Input: */ +/* return: */ +/******************************************************************************/ + +EXPORT void uart2_put_hex(char c); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines Strings auf UART2 */ +/* Input: string: C- String der aud UART2 ausgegeben werden soll */ +/* return: */ +/******************************************************************************/ + +EXPORT void uart3_put_hex(char c); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines Strings auf UART3 */ +/* Input: string: C- String der aud UART3 ausgegeben werden soll */ +/* return: */ +/******************************************************************************/ +EXPORT void uart2_put_string(char *string); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines Strings auf UART2 */ +/* Input: string: C- String der aud UART2 ausgegeben werden soll */ +/* return: */ +/******************************************************************************/ + +EXPORT void uart3_put_string(char *string); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: Ausgabe eines Strings auf UART3 */ +/* Input: string: C- String der aud UART3 ausgegeben werden soll */ +/* return: */ +/******************************************************************************/ + +EXPORT void uart2_clear(void); + +/******************************************************************************/ +/* U N T E R P R O G R A M M: */ +/* */ +/* Aufgabe: sendet Positionierungsstring auf VT100 Terminal "ESC[y;xH" */ +/* Input: */ +/* return: */ +/******************************************************************************/ +EXPORT void uart2_setpos(char x,char y); + + +/* ------------------------- ADC Funktionen ----------------------------------*/ + +/******************************************************************************/ +/* U N T E R P R O G R A M M: adc1_convert */ +/* */ +/* Aufgabe: liefert aktuellen Wert von ADC1 für Kanal channel */ +/* */ +/* Input: channel to convert */ +/* return: converted value (12Bit right aligned) */ +/******************************************************************************/ +EXPORT unsigned short int adc1_convert(unsigned char channel); + +#undef EXPORT +#endif /* __ARMV10_STD_H */ + +/******************* (C) HTL - HOLLABRUNN 2009-2010 *****END OF FILE****/