Forum: Mikrocontroller und Digitale Elektronik Probleme mit C-Code für ADC des C167 CR-LM


von Norbert M. (stromfloh)


Lesenswert?

Hallo

In Sachen C-Code Programmierung bei Mikrokontroller bin ich ein Neuling 
und bräuchte Eure Hilfe.

Ich benutze:

- C167 CR-LM Mikrocontroller mit Entwicklungsboard
- MM167 Phytek
- Keil uVision 2
- Flashtool 16W & 3


Ich will ein analoges Spannungssignal 0 - 5 V am Eingang des AD -Wandler 
(10 bit) des C167 CR-LM kontroller einlesen und am Port 2 (16 bit) mir 
über LEDs ausgeben lassen.

Sowohl Referenzspannung, Abgänge an den Ports P2.0 - P2.9 als auch die 
Messspannung am ADC sind richtig angeschlossen.

Hier der C-Code:



#include <reg167.h>
#include <stdio.h>

int i;
unsigned int ADC(void)

{


  ADCON = 0xB011;
  ADST = 1;

  while (ADBSY ==1);
  return (ADDAT & 0x03FF);

}

void main (void)

{

  P2  |= 0x03FF;
  DP2 |= 0x03FF;
  DP2 &= 0xF7FF;

  S0TIC = 0x80;
    S0RIC = 0x00;
    S0BG  = 0x40;
    S0CON = 0x8011;

  while(1)
  {

  P2 = ADC();

         }
}


Das Programm lässt sich ohne Probleme auf den C167 überspielen aber die 
LEDs an den Ports flackern permanent auf unabhänbgig vom Messignal. Wo 
liegt der Fehler?


ich hoffe Ihr könnt mir helfen.

von AT89xx (Gast)


Lesenswert?

Ohne näher auf das Programm einzugehen: Watchdog deaktiviert?

von Jörg S. (joerg-s)


Lesenswert?

Ist der analog Eingang auch auf analog Funktion eingestellt?

Welchen Sin soll das haben?
DP2 |= 0x03FF;
DP2 &= 0xF7FF;

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.