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
wenn du uns noch sagst was für ein prozessor dann können wir vielleicht Aussagen machen Gruss (an die Glaskugel)
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.
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?
>...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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.