Sensorwerte werden bei zeitdiskreter Abfrage nur unregelmäßig dargestellt

OP #3190456
Lesenswert?

Hi Leute,

ich habe einen digitalen Sensor (HYT-221) für Relative Luftfeuchtigkeit 
und Temperatur an meinen Atmega32 angeschlossen und möchte die Werte in 
Labview darstellen.
Ich will die Werte folgendermaßen auslesen: Die Werte sollen nur dann an 
den Rechner übertragen werden, wenn Labview danach fragt. Somit schickt 
Labview in regelmäßigen Abständen einen kleinen String an den 
controller, welcher daraufhin die Werte auslesen und ausgeben soll.
Problem: Es werden nur jedes zweite Mal richtige Werte dargestellt. Die 
dazwischen sind negativ oder sehr gering. Ich weiß nicht, wo er die her 
hat. Außerdem reagiert der Sensor auf Änderungen nur sehr spät. Das ist 
innerhalb meiner Anwendung nicht besonders tragisch, ich würde aber 
einfach gerne wissen warum. Hat jemand von euch Ideen? Danke!!!

Mein Basic-Programm ist so aufgebaut:
1
Do
2

3
Input #1 , Eingabe
4

5
Wert = Left(eingabe , 1)
6

7
If Wert = "1" Then
8

9
   Sound Portd.7 , 400 , 450
10
   Measurement
11

12
End If
13

14
Loop
15

16

17

18
Sub Measurement()
19

20
I2cstart
21
   I2cwbyte Hyt221write
22
I2cstop
23

24
I2cstart
25
   I2cwbyte Hyt221read
26
   I2crbyte Humhigh , Ack                                   ' Auslesen der 4 Bytes
27
   I2crbyte Humlow , Ack
28
   I2crbyte Temphigh , Ack
29
   I2crbyte Templow , Nack
30
I2cstop
31

32

33
Humidity = Humhigh * 256                                    ' Umrechnen von Humhigh und Humlow in 16Bit-Wert
34
Humidity = Humidity + Humlow
35
Humidity = Humidity And &H3FFF                              ' Rauskürzen der Status-Bits
36

37
Temperature = Temphigh * 256                                ' Umrechnen in 16-Bit-Wert
38
Temperature = Temperature + Templow
39
Temperature = Temperature / 4                               ' Verschieben um 2 Bits nach Rechts
40

41

42
Print Humidity ; Temperature
43

44

45
End Sub
Gast #3190485
Lesenswert?

Hi

>Die Werte sollen nur dann an
>den Rechner übertragen werden, wenn Labview danach fragt. Somit schickt
>Labview in regelmäßigen Abständen einen kleinen String an den
>controller,...

BASCOM verwendet Nullterminierte Strings. Wie sieht denn der von Labview 
gesendete String aus?

MfG Spess
#3190562
Lesenswert?

R. W. schrieb:
> Außerdem reagiert der Sensor auf Änderungen nur sehr spät. Das ist
> innerhalb meiner Anwendung nicht besonders tragisch, ich würde aber
> einfach gerne wissen warum. Hat jemand von euch Ideen? Danke!!!


Natürlich habe ich Ideen.
Was, zum Bleistift, macht der

   Sound Portd.7 , 400 , 450

da drinnen? Und du wunderst dich, dass das zäh geht?
Gast #3190692
Lesenswert?

Hi

>@ Spess: Ich habe ein Wagenrücklaufsymbol an meinen eigentlichen String
>mit drangehängt. Das habe ich schon mit beachtet.

Genau das ist ja meine Befürchtung/Vermutung. Was ist, wenn INPUT auf 
ein NULL-Zeichen wartet, aber in deinem String keins enthalten ist?

MfG Spess
#3190704
Lesenswert?

spess53 schrieb:

> Genau das ist ja meine Befürchtung/Vermutung. Was ist, wenn INPUT auf
> ein NULL-Zeichen wartet, aber in deinem String keins enthalten ist?

Laut
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_vom_computer/

wartet INPUT auf einen CR. Das würde also stimmen.

Aber das ist interessant: INPUT macht ein Echo. Das würde ich gleich mal 
ausschalten. Das könnte auch der Grund sein, warum die Rückmeldung der 
Werte nicht richtig bzw nur jedes 2. mal funktioniert.
#3190719
Lesenswert?

R. W. schrieb:
> Spess, Du bist der Beste. Das mit dem lokalen Echo des Befehls Input ist
> das Problem. Ich verwende jetzt Inkey().

Kann man machen.
Man hätte aber auch einfach mit
  ECHO OFF
das Echo einfach abschalten können.


Manchmal frag ich mich ehrlich wozu ich mir eigentlich die Mühe mache, 
für andere die Tutorien im Web zu suchen, die zu lesen und dann auch 
noch die relevanten Links zu posten, wenn es eh kein Schwein 
interessiert.
#3190725
Lesenswert?

@ Karl Heinz Buchegger (kbuchegg) (Moderator)

>Manchmal frag ich mich ehrlich wozu ich mir eigentlich die Mühe mache,
>für andere die Tutorien im Web zu suchen, die zu lesen und dann auch
>noch die relevanten Links zu posten, wenn es eh kein Schwein
>interessiert.

Helfersyndrom. Kein Witz.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren