Forum: Mikrocontroller und Digitale Elektronik ADC Xc167 Problem


von Alpha D. (Firma: Privat) (mhidou6)


Lesenswert?

Hallo
kann mir jemand helfen
Ich habe den Mikrocontroller XC167 von Infenion und möchte einen 
einfachen  Code schreiben
Am  Analog-Eingang  P5.5 und P5.6 soll eine analoge Spannung gegeben 
werden
Diese muss dann konvertiert werden  werden, und die Werte sollen an 
Strom1 und Strom2 zurückgegeben.
Leider funktioniert ist dies nicht und ich kann s mir nicht erklären, 
warum das so ist.
Ich erhalte komische  Werte
muss ich an meinem StartXC167.A66 Datei  außer ADCDIS EQU 0; was ändern
Vielen Dank für jede Hilfe.


1
#include <xc167.h>
2
#include <intrins.h>
3
#include <XC16X.h>
4
  
5
int AD_Strom_messung (int kanal);
6
void init ();
7
8
unsigned int Strom_Wert,Strom1,Strom2;
9
10
main ()
11
.
12
while (1){
13
.
14
.
15
 Strom1 = AD_Strom_messung (5);
16
 Strom2 = AD_Strom_messung (6);
17
.
18
.
19
}//ende of while
20
}//ende of main
21
22
void init ()    
23
   {........ 
24
P5DIDIS = 0xFFFF ;
25
.
26
.
27
}
28
29
int AD_Strom_messung (int kanal){  
30
  ADC_CON = kanal + 0x0080 ;//Konvertierung starten 
31
 do {
32
          
33
     }while (ADC_CON & 0x0100);//abwarten der Konvertierung 
34
 
35
  Strom_Wert = ADC_DAT & 1023 ;// ablesen der Resultat
36
  return Strom_Wert;
37
 }

von Carsten S. (carsten)


Lesenswert?

Meine Empfehlung ist:
probiers mal den Controller mit dem DAvE zu initialisieren bzw. schau 
dir an, wie dieses Tool den Code erzeugen würde.
(http://www.infineon.com/cms/en/product/channel.html?channel=db3a3043134dde6001134ee4d3b30265)

von Gast (Gast)


Lesenswert?

Fehlt da nicht ne { nach main?

von Gast (Gast)


Lesenswert?

Hallo,

mal ne Frage, wo wird denn die init() Funktion aufgerufen?

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.