Kleines Geschickligkeitsspiel mit Wägezelle
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.
Hinweis kann nach Kenntnisnahme deaktiviert werden!
-
-
Bitwait wird an dieser Stelle nicht schneller sein ans While-Wend
Beide warten ja nur auf ein Ereignis. -
Quellcode
- 'ADDO = 1 'I also give quotation marks at this alternately coz as input, not output
- Adsk = 0 'clock LOW
- Count = 0 'reset variable
- 'While Addo = 1 'wait until data ready
- 'Wend
- Bitwait addo,set
- 'Shiftin ADDO , ADSK , Count , 1 , 24 , 10 --> similar ?
- For I = 1 To 24 'channel A, gain 128x
- Adsk = 1 'clock HIGH
- Shift Count , Left , 1 'shift to left 1 bit
- Adsk = 0 'clock LOW
- If Addo = 1 Then Incr Count 'give bit 1 for LSB, otherwise 0
- Next
- Adsk = 1 'clock HIGH
- Count = Count Xor &H800000 '0x800000
- Adsk = 0 'clock LOW
- Hx711_read = Count 'returned value
- Hx711 = Str(hx711_read)
- Hx711 = Left(hx711 , 3)
- Datafix = Val(hx711)
denn Wait=warten is doch das gleiche wie while=verweilen bis... -
Poste doch bitte mal den ganzen Code.Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
-
Quellcode
- $regfile = "M328pdef.dat"
- $crystal = 8000000
- $baud = 19200
- $hwstack = 40
- $swstack = 20
- $framesize = 40
- Ddrc.2 = 1
- Ddrc.1 = 0
- Adsk Alias Portc.2
- Addo Alias Pinc.1
- Led_blau Alias Portd.2
- Config Led_blau = Output
- Config Adsk = Output
- Config Addo = Input
- Dim Count As Long
- Dim I As Byte
- Dim Hx711_read As Long
- Dim Hx711 As String * 10
- Dim Datafix As Integer
- Dim Neu_wert As Word
- Dim Alt_wert As Word
- Dim Differenz As Long
- Do
- Addo = 1
- Adsk = 0
- Count = 0
- While Addo = 1
- Wend
- For I = 1 To 24
- Adsk = 1
- Shift Count , Left , 1
- Adsk = 0
- If Addo = 1 Then Incr Count
- Next
- Adsk = 1
- Count = Count Xor &H800000
- Adsk = 0
- Hx711_read = Count
- Hx711 = Str(hx711_read)
- Hx711 = Left(hx711 , 3)
- Datafix = Val(hx711)
- Differenz = Datafix - Alt_wert
- If Abs(differenz) > 3 Then
- Alt_wert = Datafix
- Shift Datafix , Right , 2
- Neu_wert = Datafix
- Toggle Led_blau
- End If
- Loop
-
-
Ich wollte nebenbei die LED etwas dimmen und wollte Software PWM dazu benutzen. Dunkler wird sie allerdings im Takt der While Wend Schleife.
-
Dann dimm deine LED nur dann wenn ADDO = 1 ist.
Hast du das schon probiert?Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem. -
mhc2004 schrieb:
und wollte Software PWM dazu benutzen. Dunkler wird sie allerdings im Takt der While Wend Schleife.
-
-
ja, die klassische Methode für Software-PWM
-
Das war die Idee, danke. Ich hatte es allerdings schon mal versucht nur hatte ich in der Interrupt Routine das waitms mit drin.
So gings natürlich nicht.
Jetzt zähle ich im Timer0 hoch. Bei 10 geh ich wieder auf 0.
Bei 1 schalte ich an und bei 2 wieder aus. GEHT!
Somit ist zwischen 3-10 Led aus.
Danke für den Tip -
Mittlerweile haben wir echt gute Abende verbracht "Wasser" zu kippen.....hahaha
Ich habe da noch eine Sache. Ich benutze den HX711 dazu meine kleine Wiegezelle auszulesen.
Bei meiner Personenwaage im Bad ist es so wenn man kurz drauf tritt geht die an.
Jetzt hab ich mir das Datenblatt vom HX711 nochmal vorgenommen aber nicht wirklich was gefunden was ich an einen INT anschliessen könnte, oder doch?
Wie machen die das???
Sieht ja so aus als ob das ein "Power Down" Modus wäre und durchs antippen die Steuerung der PW geweckt wird.
Grrr....bemerke grad das ich die "Powerdown" Frage auch hier hätte posten können... -
mhc2004 schrieb:
Bei meiner Personenwaage im Bad ist es so wenn man kurz drauf tritt geht die an.
Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem. -
djmsc schrieb:
Die haben dafür noch einen kleinen Schalter (Kontakt) mit eingebaut um die Waage ein zu schalten wenn man kurz darauf tritt.
Der Controller wacht einmal pro Sekunde auf und misst das Gewicht.
Gab es eine positive Änderung von xx kg zum letzten mal, dann wird das Display eingeschaltet und dauernd gemessen.
Ändert sich das Gewicht ne Weile nicht mehr, geht es wieder in den Sleep. -
Ahhhh....also Watchdog.
hmm...watchdog hilft mir nicht wirklich weiter.
obwohl watchdog ohne "Reset" evtl. schon.
Muss ich mal grübeln, danke für die schnelle Antwort. -
Michael schrieb:
unwahrscheinlich, das ist viel zu teue
Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem. -
mhc2004 schrieb:
Ahhhh....also Watchdog.
djmsc schrieb:
Doch doch, bei meiner Waage ist das so
-
Michael schrieb:
Die ist dann aber schon etwas älter
Muss aber auch sagen das die nicht gerade billig war.Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.