Gast
#1830580
Hallo, ich bin noch nicht der Freak in Sachen Mikrocontroller, möchte aber nun eine Temperatur mittels TSIC306 mit einem AVR (wird wohl ein ATTiny2313 oder ATMega8 werden) auslesen, programmieren tue ich in C und verwende AVR-Studio mit WinAVR. Jedoch soll der Temperaturwert per "Polling" (vom PC) an den PC zurückgegeben werden (RS232, ASCII, 8N1). Also konkret: Ich sende mit einem Terminalprogramm eine Raute '#' an den Mikrocontroller. Nun soll der Temperaturwert, den der Mikrocontroller in einer Variable gespeichert hat, an den PC übermittelt werden. Habe hier im Forum einige Sende-/Empfangsroutinen gefunden und mir die beste "für mich" ausgesucht. Mir macht jetzt aber einiges Kopfschmerzen: Die Werte vom TSIC306 werden per "Manchester Duty Cycle" an den Mikrocontroller gesendet. Nun habe ich gelesen, dass man nicht mit einer festen Frequenz den TSIC306 auslesen sollte, da bei steigender Temperatur die Bits langsamer an den Mikrocontroller gesendet werden, bei geringer Temperatur dagegen schneller. Werden die Bits in einem festen Zeitfenster ausgelesen, könnten bei hoher und niedriger Temperatur Fehler entstehen. Das will ich vermeiden und denke darüber nach den ICP-Pin zu verwenden. Das setzt aber dann einen Timer voraus. Ich muss ja die Mitte des Zeitfensters berechnen, sprich: wenn die Startbedingung 1->0..0->1 120µs dauert, muss die mittlere Bitzeit (Verzugszeit) auf 60µs gesetzt werden. Bei hoher Temperatur könnte die Startbedingung 150µs dauern, d.h. die mittlere Bitzeit muss auf 75µs gesetzt werden. Zum Aufbau: Ich will den TSIC306 auf "Dauerplus" legen. Dieser Temperatursensor sendet dann im 10Hz-Takt den Messwert. Einlesen möchte ich diesen per ICP. Zeitgleich soll ein Interrupt erfolgen, wenn eine Raute vom PC empfangen wird, der die Ausgabe des Temperaturwertes an den PC "erzwingt". Werden oder können sich der UART-Interrupt und die ICP-Routine gegenseitig behindern? Vielleicht kennt sich jemand mit ICP aus, wenn man damit einen Temperaturwert vom TSIC306 auslesen will?! Ich möchte gerne das Programm mit euch gemeinsam erstellen und erwarte keine komplette Lösung. Achja, das technische Datenblatt: http://www.ist-ag.ch/eh/ist-ag/resource.nsf/imgref/Download_TSic_Zacwire_EN.pdf/$FILE/TSic_Zacwire_EN.pdf Danke, Philipp