Liebe µC Freunde,
ich stehe wieder mal vor einem Problem und brauche eure Hilfe.
Folgende Situation:
Ich habe ein AtXmega 128A3 und nutze AVR Studio (Version 4.19)
Für verschiedene Bastelein habe ich den Xmega schon verwendet.
Nun möchte ich den DAC verwenden und ausprobieren und bin auf folgendes
Problem gestoßen, der DAC Ausgang will nicht senden!
1 | // Programm für DAC TEST
|
2 |
|
3 | #include <avr/io.h>
|
4 | #include <math.h>
|
5 | #include <Seriell.h>
|
6 | #include <util/delay.h>
|
7 | #include <dac_adc.h>
|
8 |
|
9 |
|
10 | void clock_init(void);
|
11 |
|
12 | void dac_init(void);
|
13 |
|
14 |
|
15 | int main(void){
|
16 |
|
17 |
|
18 | int i,b=0;
|
19 | int sample = 4095;
|
20 | int sample_end = 0;
|
21 | char wert1[10];
|
22 |
|
23 |
|
24 | init_RS232 (F0, 115200); // Schnittstelle konfigurieren RS232
|
25 | clock_init();
|
26 | dac_init();
|
27 | // sende daten
|
28 | while (1){
|
29 | for (i = 0; i < sample ; i++) {
|
30 |
|
31 | DACB.CH0DATA = i;
|
32 | b=DACB.CH0DATA;
|
33 |
|
34 |
|
35 | sprintf(wert1,"\rb: %d\t\n",b);
|
36 | serial_puts(wert1,F0);
|
37 |
|
38 |
|
39 | //warte bis sendung fertig
|
40 | while (!DACB.STATUS & DAC_CH0DRE_bm) ;
|
41 | }
|
42 | i=0;
|
43 |
|
44 |
|
45 |
|
46 | }
|
47 | return 0;
|
48 | }
|
49 |
|
50 |
|
51 | void clock_init(void)
|
52 | {
|
53 | //Oszillator auf 32Mhz stellen
|
54 | OSC.CTRL |= OSC_RC32MEN_bm;
|
55 | // Warten bis der Oszillator bereit ist
|
56 | while(!(OSC.STATUS & OSC_RC32MRDY_bm));
|
57 | CCP = CCP_IOREG_gc;
|
58 | CLK.CTRL = (CLK.CTRL & ~CLK_SCLKSEL_gm) | CLK_SCLKSEL_RC32M_gc;
|
59 | }
|
Zur visuellen Darstelllung lasse ich mir seriell DACB.CH0DATA ausgeben,
um zu sehen ob der erstellte Sägezahn richtig umgesetzt ist vom Code
her.
Die Ausgabe habe ich per Screenshot angehängt (i wird bis 4094
hochgezählt und danach springt i auf 0 zurück > Sägezahn Spannung).
Ich vermute mache einen Fehler bei der Initialisierung des DACs.
Die adc_dac.h Datei habe ich auch mal angehängt.
Ich messe Single Endes an folgenden PINS ohne Erfolg:
PB2
PB3
habe auch schon verzweifelt an Port A gemessen mit meinem Oszi.
(siehe AtXmega Datenblatt Seite 51)
Ich hoffe Ihr kennt die Lösung und helft mir bei meinem Versuched den
DAC zu testen.