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.
Gast
#2039817
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;
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.