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.
Ohne näher auf das Programm einzugehen: Watchdog deaktiviert?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.