Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:snmp_oid_temperatur_adc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
contiki:snmp_oid_temperatur_adc [2012/05/21 17:51]
sven_zehl angelegt
contiki:snmp_oid_temperatur_adc [2017/01/24 18:49] (aktuell)
Zeile 107: Zeile 107:
  
 Leider besitzt der verwendete NTC keine lineare Kennlinie für das Widerstands-Temperaturverhältnis. Laut Datenblatt erfolgt die Berechnung mithilfe der Formel: Leider besitzt der verwendete NTC keine lineare Kennlinie für das Widerstands-Temperaturverhältnis. Laut Datenblatt erfolgt die Berechnung mithilfe der Formel:
-  + 
-Diese ist jedoch zu Aufwendig um sie im 1284p zu implementieren, es wird deshalb ein Array mit berechneten Werten genutzt. Glücklichweise liefert das Datenblatt die berechneten Werte im 5° Abstand in der Form {{:contiki:temp3_dataform.png?direct&100|}} . Um eine genauere Skalierung von 1° zu erreichen wurden die Werte dazwischen interpoliert und in ein u16t Array eingetragen. (Werte wurden mit 100 multipliziert um u16t nutzen zu können)+{{:contiki:temp2.png?direct|}} 
 + 
 +Diese ist jedoch zu Aufwendig um sie im 1284p zu implementieren, es wird deshalb ein Array mit berechneten Werten genutzt. Glücklichweise liefert das Datenblatt die berechneten Werte im 5° Abstand in der Form {{:contiki:temp3_dataform.png?direct&150|}} . Um eine genauere Skalierung von 1° zu erreichen wurden die Werte dazwischen interpoliert und in ein u16t Array eingetragen. (Werte wurden mit 100 multipliziert um u16t nutzen zu können)
  
 <code c> <code c>
Zeile 161: Zeile 163:
 ==== Die eigentliche get-Funktion ==== ==== Die eigentliche get-Funktion ====
  
-Im letzten Schritt kann nun die eigentliche get-Funktion geschrieben werden, diese initialisiert zuerst den ADC, liest dann den aktuellen Wert ein, wandelt den ADC Wert in den aktuellen Widerstandswert und bestimmt anschließend die aktuelle Temperatur.+Im nächsten Schritt kann nun die eigentliche get-Funktion geschrieben werden, diese initialisiert zuerst den ADC, liest dann den aktuellen Wert ein, wandelt den ADC Wert in den aktuellen Widerstandswert und bestimmt anschließend die aktuelle Temperatur.
  
 <code c> <code c>
Zeile 179: Zeile 181:
 } }
 </code> </code>
 +
 +===== Aufruf in mib_init() =====
 +
 +Am Ende fehlt jetzt nur noch die Initialisierung der neuen OID in der Funktion mib_init().
 +
 +<code c>
 +
 +if (add_scalar(&oid_temp_int, 0, BER_TYPE_INTEGER, 0, &getTempValue, 0) == -1) 
 +{
 +        return -1;
 +}
 +</code>
 +
 +
 +Die aktuelle (21.05.2012) funktionsfähige Raven Board MIB kann unter [[contiki:mib_210512_source|]] betrachtet werden.
 +
 +{{:contiki:temp_pic.png?direct&800|}}
contiki/snmp_oid_temperatur_adc.1337622704.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)