nachstehenden Text habe ich an ZMD geschrieben. Vielleicht weiß von Euch einer, wie man das programmieren kann. Eine Beschreibung war hier unter Temperatursensor zu finden. ich bin gerade dabei, das Auslesen der Temperatursensoren TSic zu programmieren. Ich verwende einen ATMEL ATMEGA 32. In Ihrer Beschreibung gehen Sie von nur 1 Sensor aus. Ich will aber mindestens 5 Sensoren auslesen. Der Mega32 hat aber nur 3 Interrupteingänge und einen Capture Eingang. (und 3 Timer). Deswegen geht das nicht so ohne weiteres nach Ihrer Beschreibung. Wissen Sie da einen Weg, wie man das programmieren könnte? Ich hatte daran gedacht, einen Port (8bits) mit 32 Khz einzulesen. Das Problem dabei ist, daß das Einlesen mit einer Flanke zusammenfallen könnte. Was dann gelesen wird, weiß ich nicht. Außerdem könnte es sein, daß mein 32 Khz Timing nicht mit dem Timing des TSic übereinstimmt, so daß Verschiebungen auftreten. Eine Erhöhung der Abtastfrequenz auf 128 Khz löst das Problem nicht. Ich gehe auch davon aus, daß die Sensoren nicht zur gleichen Zeit die fallende Flanke aussenden und das Timing nicht 100%ig identisch ist (nominal Frequenz).
Wolfram Quehl wrote: > übereinstimmt, so daß Verschiebungen auftreten. Eine Erhöhung der > Abtastfrequenz auf 128 Khz löst das Problem nicht. Warum nicht ? Das sind 1/16 der Bitzeit, sollte also fein genug sein. Ansonsten: 1.4.2 Solutions if Real Time System Cannot Tolerate the TSicTM Interrupting the mController Peter
Alle Sensoren einzeln Einschalten und auf Übertragung warten. Die Ausgangspins der Sensoren könnte man zusammenschalten. Sollte bei 5 Sensoren eigentlich noch gehen. Man könnte sich aber auch den Interrupt sparen, da man weiss wie lange der Sensor braucht bis er nach dem Einschalten das Ergebnis sendet (Also einfach nur auf Pin Aktivität testen).
@Peter die 16tel Bitzeit schließt nicht aus, daß die Flanke gelesen wird. Man könnte dann evtl. bei einer fehlerhaften Auslesung das Bit auf das Sollbit setzen. Aber ob das so einfach geht, weiß ich nicht so recht. Das fehlerhafte Bit müßte erkannt werden können. 1.4.2 nutzt einen Softwarezähler für die Wartezeit. Das ist in Anbetracht, daß noch mehr Aufgaben gemacht werden sollen, zunächst nicht so akzeptabel. @Jörg hat der Sensor im ausgeschalteten Zustand einen Tristate Ausgang? Habe ich im Datenblatt nicht gesehen bzw. übersehen. Die Zeit bis zur Aktivität ist nicht so genau bekannt. 65-85 ms. Also Int. verwenden. Könnte vielleicht gehen. Etwas nachteilig ist dann zwar die Umsetzzeit von 1/2 sek., da die Differenztemp. ermittelt werden soll, aber vielleicht noch akzeptabel. Pinaktivität geht eben nicht wegen der Flankenauslesung.
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.