Forum: Mikrocontroller und Digitale Elektronik ADC bei TC1767 / TC1766


von Markus (Gast)


Lesenswert?

Hallo,

ich möchte gerade die ADC vom TC1767 (oder TC1766) einsetzen. Leider 
funktioniert es nicht so ganz. Dazu habe ich mir ein Beispiel 
ausgedacht:

- auf AN0 messe ich eine Spannung
- Beträgt die Spannung über 0V lasse ich eine LED leuchten

Dazu möchte ich innerhalb einer while()-Schleife eine 
12-Bit-AD-Umwandlung anstossen lassen (über einen Funktionsaufruf) und 
je nach Spannung die LED leuchten lassen. Die Konfiguration (TC1767) 
habe ich mittels DAvE vorgenommen und ist im Anhang zu finden. Meine 
while()-Schleife sie folgendermaßen aus:

1
        // USER CODE BEGIN (Main,7)
2
        /* LEDs ausschalten */
3
        IO_vSetPin(IO_P5_0);
4
        IO_vSetPin(IO_P5_1);
5
        IO_vSetPin(IO_P5_2);
6
        IO_vSetPin(IO_P5_3);
7
        IO_vSetPin(IO_P5_4);
8
        IO_vSetPin(IO_P5_5);
9
        IO_vSetPin(IO_P5_6);
10
        IO_vSetPin(IO_P5_7);
11
12
        uword a = 0;
13
        while(1) { /* Endlos-Schleife */
14
            ADC0_vStartSeq0ReqChNum(1, 0, 1, ADC0_ANA_0); /* Umwandlung durchführen */
15
            while(ADC0_uwBusy() == 1) { } /* Warte bis Umwandlung beendet ist */
16
            a = ADC0_uwGetResultData(RESULT_REG_0); /* Ergebnis auslesen */
17
            if(a>0) { /* Spannung höher als 0V */
18
                IO_vResetPin(IO_P5_0); /* LED 0 leuchten lassen */
19
            } else {
20
21
            }   IO_vResetPin(IO_P5_1); /* LED 1 leuchten lassen */
22
        }
23
         // USER CODE END

Kann mir da jemand weiterhelfen?

Viele Grüße
Markus

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

PS: Vergessen die Konfigurationsdatei anzuhängen

von Jürgen F. (funksoulbrother)


Lesenswert?

Hallo,

was meinst du denn mit "es funktioniert nicht so ganz"? Hast du außerdem 
den ADC und die GPIO initialisiert?

von Markus (Gast)


Lesenswert?

Hallo,

ja habe ich. Bin gerade eben nochmal die Funktionsparameter durchlaufen. 
Mir ist bei einem Parameter der Funktion ADC0_vStartSeq0RegChNum() ein 
Fehler unterlaufen. Der erste Parameter "ubExtTrg" muss auf 0 gesetzt 
werden, da der ADC bei mir in der Software gesteuert wird und nicht über 
einen externen Trigger.

Kannst du mir vielleicht erklären, was der dritte Parameter "ubRFill" 
angibt? In der Beschreibung bei DAvE steht "defines the refill (1 for 
enable, 0 for disable)" Damit kann ich leider nichts anfangen und habe 
es deshalb ausgeschaltet. Anscheinend braucht er das auch nicht.

Viele Grüße
Markus

von Jürgen F. (funksoulbrother)


Lesenswert?

Also ich habe da nicht so viel Ahnung weil ich auch eigentlich nur mit 
dem TC1797 arbeite. In dessen Datenblatt steht aber unter ADC und da 
unter refill, dass dann immer die gleiche Konversion mit den gleichen 
Parametern wiederholt wird ohne dass das immer wieder neu programmiert 
werden muss.
Weiß nicht ob dir das was hilft. Ansonsten schau einfach mal in dein 
Datenblatt unter ADC und dort unter refill

von Markus (Gast)


Lesenswert?

Ja, ich finde es auch gerade in meinem Datenblatt. Da war ich etwas 
voreilig beim Fragen (statt erstmal direkt im Datenblatt nachzuschauen). 
Danke dir!

Die nächste TC17xx Fragen kommen betimmt bald!:)
Besten Dank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.