Hallo
MySmartControlM168
Temp-Sensor: LM74
ich lese über Labview(Visa-Schnittstelle) die Temperatur ein. Diesen
Sensor habe ich an Controller MySmartUSBM168 angeschlossen.
Zum Problem:
Bei 20°C ist immer ein Sprung, der sich bei über oder unterschreiten der
kritischen Temp wieder normaliesiert. die ersten bytes sind dann auch
auf high gesetzt, was eigentlich nur bei negativen Temperaturen
vorkommt. Hat jemand ne Idee, woher dieser Sprung kommt?
Ein paar Fragen hätte ich noch:
Wie ist der Sensor beschaltet (uC<->LM74)?
Was passiert, wenn du den Sensor langsam abkühlst?
Wie werden die Subroutinen aufgerufen (receiveSPI,receiveSPI2)?
Welchen SPI-Mode verwendest du?
hallo,
1.
Der I/O Kanal ist auf MISO(PB4), die CLK auf SCK(PB5), der CS aus
SS(PB2).
Der Sensor hat nur einen Kanal für den Ein- und Ausgang.
2.
Wenn der Sensor lamgsam abgekühlt wird, dann ist der Fehler auch da,
allerdings tritt er dann auch wesentlich länger auf, da die kritische
Temepratur länger gehlaten wird,
3.
mainloop:
1
wdr
2
ldi r16,0
3
ldi r17,0
4
5
loop:
6
add r1,r2
7
dec r17
8
brne loop
9
dec r16
10
brne loop
11
rcall sendSPI
12
rcall sendSPI2
13
rcall getPWM
14
15
rjmp mainloop
4.
im SPI Control Register habe ich SPI Enable, Master SPI Modus auf high
gestellt. Den prescaler habe ich auf f(osc)/64 gestellt.
Hallo,
mir ist noch etwas aufgefallen, bei der kritischen Temperatur von 20°C
kommt ein Dreher in der Byte-Reihenfolge. Bei der Temperatur kommt
zuerst das 2.Byte und dann das 1.Byte. Ich vermute das der Controller
die Visa schnittstelle überlädt. Ich weiss aber nicht warum das nur bei
20-21°C ist. Kann ich mein Assembler Programm, siehe unten, etwas
schlauer machen. Ich habe keine Idee mehr.