23-DAC-Library (STM32F4)

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 :

dac

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 :

ub_stm32f4_dac_v100

Hier der komplette CooCox-Projektordner zum Download :

Demo_23_DAC

Eine Antwort auf 23-DAC-Library (STM32F4)

  1. marcel sagt:

    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


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert