Forum: Mikrocontroller und Digitale Elektronik Frage zu ADDAT


von Klaus Rheine (Gast)


Lesenswert?

Hallo!

Bin Anfänger auf dem Gebiet Mikrocontroller und hätte mal eine Frage
zum SFR ADDAT. Habe hier zwei Programme in C-Code vorliegen, in dem mit
Hilfe des AD/Wandlers Werte über einen Temperaturfühler gemessen werden
sollen und mit dem Messergebnis weitergearbeitet werden soll.

Besitzt der Digitalwert in ADDAT keinen bestimmten Datentyp?

In einem Programm wird eine int-Variable "T" erzeugt und dem Register
ADDAT zugordnet.
In dem anderen wird die gleiche Variable jedoch vom Typ char erzeugt
und ADDAt zugewiesen.
Kann man das das so einfach machen??

Würde mich über Hilfe freuen.

Mit freundlichen Grüssen
Klaus Rheine

von T.Stütz (Gast)


Lesenswert?

wenn du uns noch sagst was für ein prozessor dann können wir vielleicht
Aussagen machen

Gruss (an die Glaskugel)

von Klaus Rheine (Gast)


Lesenswert?

Die Aufgabe soll mit einem 80515 gelöst werden.

von Rufus T. Firefly (Gast)


Lesenswert?

Was sagt denn das Datenblatt des Prozessors über das SFR?

von tex (Gast)


Lesenswert?

Schööööner prozessor.
Was willst Du mit dem Wert aus dem ADDAT machen?
Wenn Du nur die 8 Bit ausliest, reicht es Dir vieleicht, das Ergebnis
der Wandlung anzuzeigen, dann reicht Dir ein Char.
Wenn Du das Ergebnis z.B. benutzen willst, um die Einstellungen für
Deine Offsetts zu berechnen, sollte es schon INT sein.

von Klaus Rheine (Gast)


Lesenswert?

Gehen wir mal von einem Temperaturfühler aus.
Dort will ich prüfen, ob der Wert in ADDAT größer 0 ist.
Ist dies der Fall, soll der Wert als zweistellige Dezimalzahl
ausgegeben werden. Zur Ausgabe dient eine Prozedur out_char(z), die als
Parameter ein ASCII Zeichen erwartet.

Wie gehe ich dann im Programm vor?

int wert;
char ausgabe,z;

wert=ADDAT;
if(wert>0)
  {
    ausgabe=ADDAT //???
    z=ausgabe/10   //Zehner-Stelle
    z=z+0x30  //ASCII Ziffer
    out_char(z);

    .
    .
    .
   }

Kann ich ADDAT in der if-Schleife einem char-Wert zuweisen, obwohl ich
dem Register vorher int zugewiesen habe?

von hmk (Gast)


Lesenswert?

ok

von johnny.m (Gast)


Lesenswert?

>...obwohl ich dem Register vorher int zugewiesen habe?

Umgekehrt:
Du weist ja nicht dem Register ADDAT einen Wert oder Typ zu (macht
wenig Sinn) sondern Du weist den Inhalt von ADDAT einer Variablen zu,
was kein Problem ist, solange die jeweilige Variable einen Wertebereich
hat, der größer oder gleich dem Wertebereich von ADDAT ist. Ich hoffe,
das löst das Verständnisproblem.

Gruß

Johnny

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.