Hallo Leute ich bitte um Hilfe ich muss die Temperatur messen mit Hilfe der single-Slop (RC) sodass man ladet die Kapazität wenn die Kapazität auf geladen wird entladet man sie und mist die Entladung-Zeit ich muss alle in C programieren ich habe alles versucht aber es klappt nicht kann jemand bitte mir helfen.
Das mit C Programmieren (Mikrokontroller) und single-slope Verfahren passt nicht so recht zusammen. Mit Mikrokontroller nimmt man einen Kontroller mit internem AD-Wandler und setzt den Temperaturfühler in einen Spannungsteiler ein, wenn man mit höherer Genauigkeit messen will. Bei geringerer Präzision schaltet man einen Kondensator mit eingen nF auf Null und misst anschließend die Zeit zum wieder-aufladen über den Temperaturfühler. Das single slope-Verfahren hat einen deutlich höheren Aufwand im analogen Bereich der Schaltung. Für Genaueres müsste man wissen, welcher Temperaturfühler verwendet wird und welche Genaugkeit und Auflösung erreicht sein soll. Auch der Temperaturbereich müsste bekannt sein. Rück mal mit diesen Angaben heraus.
Ne typische Hellseherfrage. Absolut minimal nötige Informationen: - Schaltplan - CPU - Compiler > ich habe > alles versucht Wir sind nicht ganz so dumm, wie es scheinen möge. Du mußt schon zeigen, was Du alles probiert hast. Peter
Ich danke Ihnen peter-neu-ulm die Präzision spielt hier keine Große Rolle, wie könnte ich die port umschalten um meine ziel zu erreichen (P2 wie im bild ist nur ein Beispiel) was ich weiß ich starte den Timer für T1 und setze den P2.2 auf 1 und als Ausgang bis denn Kapazität auf geladen nach T1 wird ein Interrupt aufgelöst in dieser Interrupt Service Routine muss ich die Kapazität entladen wie????. dann initialisiere ich den Timer in Captur mode und starte ich den Timer und warten bis der Comparator ein Interrupt löst (captur) mode und so fange ich das werte die mir hilft um die Entladung zeit zu messen was ich brauche wie Kann ich die Porte auswählen und um schalten danke
CPU Hitatchi H8/300 Compiler High-perfomance Embadded Wokshop
folgende Schritte im Ablauf: -P2.0,P2.1,P2.3 als Eingang -P2.0 und P2.2 auf 0,damit kein pullup eingeschaltet ist. P2.3 einschalten, als Eingang, liest danach Spannung an C messstart: Erste Lesephase -P2.2 als Ausgang (C wird über R aufgeladen ) -gleichzeitig läuft Timer aufwärts. -Bei Erreichen der 0-1 Schwelle schaltet Pin2.3 auf 1 -Dabei wird capture-int aufgerufen. (Pin 2.3 musss der capture-input des timers sein) bei capture-int: Wert des capture-Registers wird zwischengespeichert, in temp1 -Timer auf Null gestellt und gestoppt, P2.2 auf 0, P2.2 als Eingang -P2.0 auf 0, P2.0 als Ausgang (C wird entladen) reti Zweite Lesephase: -Timer wird gestartet und P2.0 auf 1(C wird über NTC aufgeladen) an Pin 2,3 wird capture-int ausgelöst bei capture -int: Timer auf Null gestellt und gestoppt P2.0 als Eingang, auf Null Wert in capture-int in temp2 zwischenspeichern mit flag markieren, dass ein Messzyklus vorbei ist. zurück nach messstart außerhalb der int- zeit: Messwertverarbeitung: Das Verhältnis temp1 temp2 entspricht dem Widerastndsverhältnis R NTC
Wie man beim Hitachi 8/.. Portleitungen als Eingang oder Ausgang schaltet, ist mir nicht bekannt, aber dafür gibt es bestimmt Datenrichtungsregister (data-direction-register)
Mandi wrote: > CPU Hitatchi H8/300 Der H8 dürfte ein ziemlicher Exot sein, die meisten hier kennen nur den AVR auswendig. Da wirst Du also wohl selber ins Datenblatt schauen müssen, wie man die Pins umschaltet. Wichtig wäre auch, ob der H8 überhaupt nen Komparator hat und mit welcher Spannung dieser vergleicht und ob er ne Hysterese hat. Außerdem addiert sich noch der temperaturabhängige Innenwiderstand der Portpins als Fehler zu dem NTC-Widerstand. Die Genauigkeit dürfte daher lausig sein. Peter
ich Danke euch alle ihr seid sehr nett und hilfsbereit ich werde die Sachen testen und euch bescheid sagen.
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.