Mit dieser Library können die beiden internen 12bit DA-Wandler (DAC1 und DAC2) der STM32F4-CPU benutzt werden.
Beim initialisieren muss angegeben werden ob nur ein DAC oder beide benutzt werden soll.
Wenn beide DACs benutzt werden gibt es eine extra Funktion um beide DA-Werte gleichzeitig an den Pins auszugeben.
Beispielbild :
Die DA-Wandler liegen an festen Pins der CPU :
1 2 | DAC1 an PA4 DAC2 an PA5 |
Voraussetzungen :
1 2 | Benutzte Module der CooCox-IDE : GPIO, DAC Benutzte Librarys : keine |
Enumerationen :
1 2 3 4 5 | typedef enum { SINGLE_DAC1 = 0, // nur DAC1 an PA4 benutzen SINGLE_DAC2, // nur DAC2 an PA5 benutzen DUAL_DAC // DAC1 (PA4) und DAC2 (PA5) benutzen }DAC_MODE_t; |
Funktionen :
1 2 3 4 | void UB_DAC_Init(DAC_MODE_t mode); // um den DAC zu initialisieren void UB_DAC_SetDAC1(uint16_t wert); // um einen Wert an DAC2 auszugeben void UB_DAC_SetDAC2(uint16_t wert); // um einen Wert an DAC2 auszugeben void UB_DAC_SetDAC1u2(uint16_t dacwert_1, uint16_t dacwert_2); // um beide DACs gleichzeitig zu beschreiben |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | //-------------------------------------------------------------- // File : main.c // Datum : 23.03.2013 // Version : 1.0 // Autor : UB // EMail : mc-4u(@)t-online.de // Web : www.mikrocontroller-4u.de // CPU : STM32F4 // IDE : CooCox CoIDE 1.7.0 // Module : CMSIS_BOOT, M4_CMSIS_CORE // Funktion : Demo der DAC-Library // Hinweis : Diese zwei Files muessen auf 8MHz stehen // "cmsis_boot/stm32f4xx.h" // "cmsis_boot/system_stm32f4xx.c" //-------------------------------------------------------------- #include "main.h" #include "stm32_ub_dac.h" int main(void) { uint16_t wert; SystemInit(); // Quarz Einstellungen aktivieren // init vom DAC (nur DAC-1) UB_DAC_Init(SINGLE_DAC1); while(1) { // erzeugen eines Sägezahn-Signals // von 0 bis 3,3V an PA4 // mit einer Periodendauer von ca T=2ms (f=ca 500Hz) for(wert=0;wert<4096;wert++) { UB_DAC_SetDAC1(wert); } } } |
Hier die Library zum Download :
Hier der komplette CooCox-Projektordner zum Download :
hi, tolle seite, komme immer mal gern wieder vorbei
was mir aufgefallen ist: aktualisier doch in den headern deiner dateien mal deine website!
grüße