Hey Forenteam, ich bin das erste mal hier und viele beiträge hier haben mir geholfen en paar aufgaben zu lösen =). Ich habe diesmal nur ein problem was ich garnicht lösen kann. Ich bin im 2. Semester und habe ein Microcontroller Labor das ich relativ wenig verstehe. Das programm soll mit Keil uVision3 und in c programmiert werden. Aufgabenstellung Lautet: Erstellen Sie zunächst ein Programm, das den gemessenen Spannungswert auf der Siebensegmentanzeige auf 2 Stellen nach dem Komma darstellt. Benutzen Sie hierzu die Anzeigen ANZ1 bis ANZ3. Bestimmen Sie den Koeffizienten zur Umrechnung des Digitalwertes in einen Spannungswert mit Hilfe eines Bruchs mit ganzen Zahlen im Zähler und Nenner. Verwenden Sie keine Fließkommazahl! Würde mich freuen wenn mir jemand helfen kann zumindest einen ansatz zu finden. LG und dankeschön im vorraus =)
Die Aufgabe lässt sich doch wunderbar in mehre Teile zerlegen, die Du unabhängig voneinander lösen kannst: - Ansteuern der Siebensegmentanzeige Schreibe eine Funktion, die beliebige Werte auf die Siebensegmentanzeige ausgibt. Schreibe eine Funktion, die die Dezimalpunkte der Siebensegmentanzeige ansteuert. - Ansteuern des A/D-Wandlers Lies das Datenblatt, initialisiere den Wandler und miss. Wenn Du den Teil "Ansteuerung der Siebensegmentanzeige schon gelöst hast, kannst Du diesen Teil nutzen, um Dir die Rohdaten des Wandlers, also den Wert im Bereich 0 - 1023, den Dir der Wandler liefert, auf die Anzeige auszugeben. - Umrechnen der Rohdaten des A/D-Wandlers in einen Fixkommawert Hier musst Du Dir ansehen, welcher Eingangsspannungswert welchem Wandlungsergebnis (also dem Wert im Bereich von 0 - 1023) entspricht. Entwickle eine Formel zu Umrechnung. Und überlege Dir, wie Du das ohne Floatingpoint-Arithmetik hinbekommst. - Alles zusammenfügen Hast Du alle drei Teilaufgaben gelöst, musst Du sie nur noch sinnvoll kombinieren --- und bist FERTIG!
Dilara Saljii schrieb: > Würde mich freuen wenn mir jemand helfen kann zumindest einen ansatz zu > finden. Wobei genau hast du jetzt ein Problem? Wenn du die Anzeige in Hunderstel-Volt machen sollst und der ADC bei einem Voltwert von 5V (also 500 Hunderstel Volt) einen Wert von 1024 liefert, wie rechnest du dann den ADC Wert um? Für 1024 Euro kannst du 500 Äpfel kaufen. Sei ADC ein beliebiger Wert zwischen 0 und 1024: Wieviele Äpfel (x) kannst du daher für ADC Euro kaufen? 1024 ..... 500 ADC ..... x -------------------- ADC * 500 x = ----------- 1024
Hast du die ersten beiden Versuche verpennt? Wenn nein, geheich davon aus, dass du Werte auf den Anzeigen darstellen lassen kannst. Dann sollte man den AD-Wandler dazu überreden, eine Wandlung durchzuführen. Also schnell das dementsprechende Kapitel im Datenblatt des uns unbekannten Controllers durchlesen. Dann zeigst du uns den Code, und dann kann man weiterdiskutieren.
Geh doch schrittweise vor, lies nach, wie man den ADC konfiguriert, tu das, lass die ausgabe vorerst weg. meinetwegen bestimmte werte irgendwie simulieren oder stur den eingelesenen wert anzeigen, vll. auch bitweise. stufe 2 ist dann umrechnen in volt und anzeigen wenn schritt 1 fertig ist, darfst du dich wieder melden.
Wo ist denn das Problem? "Formel" aufstellen um den AD-Wert in eine Spannung umzurechnen (Dreisatz sagt dir was?). Wenn der Faktor z.B. 0.561 ist, dann sollst du den Ausgabewert berechnen indem du mit 561 multiplizierst und dann durch 1000 dividierst. Also keine float Berechnungen. Dann den Wert auf dem Display ausgeben.
Ja ich hab die ersten beiden versuche aber keine ahnung ich steh voll auf dem schlauch :P Aber Danke für die Antworten =)
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.