www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analogwert einlesen funktioniert nicht (C515C)


Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe ein miniMODUL-515C der Firma Phytek:
http://www.phytec.de/fileadmin/user_upload/downloa...

Controller ist der C515C von Infineon drauf. Programmieren tu ich mit 
Keil uVision4.

Ich hab mal ein kleines Programm geschrieben, das mit dem Simulator von 
Keil auch wunderbar funktioniert, nur beim Testen auf dem Board nicht.
/******************* Text im Quelltext einbinden *********************/
#include<stdio.h>
#include <reg515c.h>

/*************************** Konstanten ******************************/

/*********************** globale Variablen ***************************/

/************************ Hauptprogramm ******************************/

sbit P40 = P4^0;   //Definition Port-Pin 4.0
sbit P41 = P4^1;   //Definition Port-Pin 4.1
sbit P42 = P4^2;   //Definition Port-Pin 4.2
sbit P43 = P4^3;   //Definition Port-Pin 4.3
  
int aduwert(char kanal)
{
  ADCON1 = kanal;
  ADDATL = 0;   // ADU starten
  while(BSY);    //auf Wandlungsende warten
  return((ADDATL>>6)+ADDATH*4);
}
      
void main(void)
{    
  int analogwert_AN0;
  float spannung0;
     
  ADEX = 0;    //interner Wandlungsstart
  ADM = 0;    //keine kontinuierliche Wandlung

  while(1)
  {
      while(BSY);
     analogwert_AN0 = aduwert(0);     //Analogwert einlesen lassen
    
         
    spannung0 = 5 * ((float)analogwert_AN0/1024);    //Analogwert umrechnen auf Eingangsspannung bei 5V Referenzspannung
            
    if(spannung0 > 1.0)
      P40 = 0;
    else
      P40 = 1;

    if(spannung0 > 2.0)
      P41 = 0;
    else
      P41 = 1;
    
    if(spannung0 > 3.0)
      P42 = 0;
    else
      P42 = 1;
  }

Zum Testen habe ich ein 100k Poti auf +5V und GND gehängt und den 
Schleifer auf den Eingang. Ist 100k vielleicht zuviel?

Als Referenzspannung habe ich die Jumper so gelassen wie sie auf dem 
Board waren, was bedeutet, dass 5V Versorgungsspannung als Ref-Spg 
dient.

Versteht ihr des auch so, dass Pin 80 des Boards An0 ist?

An was könnte es noch liegen?

Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat denn niemand einen Tip?

 Ist zwar ein 8051er aber ja eigentlich keine spezielle Frage...

was könnte ich noch kontrollieren/ausprobieren?

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum leichteren Debuggen des Problems würde ich dir empfehlen, Ausgaben 
(Position, Variablen) per RS232 an allen wichtigen Stellen im Code 
einzufügen. Anhand dieser Ausgaben kannst du dann schon mal sagen, was 
an welcher Stelle genau passiert. Somit lässt sich das Problem recht gut 
eingrenzen.

Ciao,
     Rainer

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.