PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Min/Max Werte abspeichern und auf knopfdruck anzeigen lassen



bebop
09.08.2011, 17:41
Schön verregneten Tag miteinander,

ich hab da mal eine frage zum SRAM im Atmega8. Eine aktuelle Anzeige der Spannung habe ich in Bascom schon hin bekommen.
Und zwar möchte ich den Min und Max Wert den ich über den AD-Wandler einlesen und bis zur Abschaltung der Stromversorgung aufbewahre auf Knopfdruck abrufen können.
Wie stelle ich das an das ich einen Wert in das SRAM des µC schreibe und wie findet die Selektion zwischen dem aktuell höchsten und einen noch höheren Wert statt.

Gruß Johannes

Kampi
09.08.2011, 18:23
Also Werte schreibst du in den RAM wenn du den Wert in einer Variable speicherst. Und die Selektion kannst du machen indem du den A/D-Wert in einer Variable speicherst und nach einer neuen Wandlung vergleichst du das Ergebniss der Wandlung mit dem Wert der Variable und wenn es größer ist überschreibst du den alten Wert.

bebop
10.08.2011, 22:18
Mhh also wenn ich das jetzt richtig verstehe ist das evtl. so richtig?



$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 40
$framesize = 60

'Displaykonfiguration als 4 Port Anschluss

Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.7 , Db6 = Portd.6 , Db7 = Portd.5 , E = Portb.0 , Rs = Portd.4
Cursor Off
Config Adc = Single , Prescaler = 128 , Reference = Avcc
'-------------------------------------------------------------------------------------------------------
Dim B As Single
Dim V As Integer

Start Adc
V = Getadc (4)
If V > B Then B = V
EndIf


Korrigiere mich bitte wenn ich falsch liege.

Gruß Johannes

peterfido
11.08.2011, 16:10
Im Prinzip ok. Aber weshalb mischst Du Single und Integer?

bebop
15.08.2011, 10:05
Es funktioniert leider nicht. Es wird mir immer noch der Aktuelle Wert ausgegeben und nicht der bisher größte.
Völlig unlogisch warum ich Single und Integer mische wenn V ein Integer ist dann muss es B auch sein.#-o

DanielSan
15.08.2011, 11:23
schreib es mal so


Start Adc
V = Getadc (4)
If V > B Then
B = V
EndIf

bebop
15.08.2011, 13:28
Jap Daniel so sollte das aussehen und ich hatte noch einen do loop schleife vergessen #-o(man merkt das ich Anfänger bin).
Aber jetzt funktioniert alles bestens, Danke an alle die sich mit meinem Problem befasst haben.