Digitale Temperatur regelnde Lüftersteuerung mit einstellbaren Hysteresewerten

okay kann ich nicht mit einem Nand die Zahlen ausm Binär system komplementieren oder gibts da einen eigenene Befehl? wenn ja im Help hab ich den nicht gefunden.


Hallo Knut!

Ein was? Ein NAND? :hmmmm:

Wie meinst du das jetzt?

Mit der Anweisung
"Temp_wert = Temp_wert AND &B0111_1111 Then"
passiert doch letztlich soetwas.
Nimme die Bits 0-6 und nicht Bit 7 !

Ich weiß nicht, was du meinst....

Gruß,
Cassio
 
ein Nand baustein wier doch zum invertieren verwenden da bei einem Nand immer 1 raus kommt wenn ich 2 0 habe und null wenn ich nur eine 1 habe. bei und griege ich doch nur 1 wenn beide 1 sind eine null und der wert wird null oder sehe ich das falsch.
 
Hallo Knut!

Sorry, aber ich kann dir einfach nicht folgen! :hmmmm:

Kannst du mal ein Beispiel posten und den passenden Code dazu?
Vielleicht komme ich ja dann dahinter. :rolleyes:

Gruß,
Cassio
 
Also okay ich meinte digitalbeusteine wenn ich zwei binäre zahlen,also zwei der beiden entsprechenden zahlen high low signal auf die eingänge des Digitalbausteins , und verknüpfe passiert das hier
Wahrheitstabelle

0 0 0
0 1 0
1 0 0
1 1 1

dann hab ich die Ersten 4 Bit nicht mehr dabei
nur wenn beide Zahlen an einer stelle 1 auf weisen bekomme ich eine 1 raus ist supper um störungen ab zu schneiden
z.B11110111
00001111
00000111
Code:
Hb1 = Hb1 And &B00001111

Beim Nand das hier

0 0 1
0 1 1
1 0 1
1 1 0
11110100
11111111
00001011
also kann ich einen wert invertieren in dem ich ihn mit B11111111 verknüpfe
z.B.
11110100
11111111
00001011
oder ich mache es mit einem Nor siet das ganze so aus

0 0 0
0 1 1
1 0 1
1 1 1

z.B.
11110100
00000000
00001011
also habe ich das komplement dieser Zahl gebildet oder sehe ich das jetzt Falsch so haben wir das in der schule gelernt
 
Hallo Knut!

Danke, für die Beschreibung......

Allerdings weiß ich jetzt immer noch nicht, was du eigentlich möchtest? :hmmmm:

Ich denke es geht darum, das deine negativen Zahlen im Display mit einem Minus versehen und dann richtig berechnet werden.

Beispiel, wie ich das verstanden habe:
Du hast den Wert -25 Grad und bekommst folgendes übermittelt= 1001_1001
Natürlich ergeben die Bits nicht -25 Grad sondern "153"!
Erst wenn du das Bit7 (welches dir signalisiert, dass es ein negativer Wert ist) aus der Umrechnung herausgenommen wird ergibt dies:
Bit7 = "minus"
Bit0-6= 0001_1001 = 25

Also -25 Grad.


So hatte ich deine Frage verstanden! :cool:
Aus dem Grunde bekomme ich auch keinen Reim auf deine NAND-Überlegungen. :eek:


So und nun erklär du bitte noch mal mit Beispiel, worum es bei dir genau geht.

Grüße,
Cassio
 
ich dachte ich sollte dies mit dem 2erkomplement durch führen und ich wollte nur einen Befehl haben mit dem ich das Komplemet Bilden kann
 
Hallo Knut!

Ja, was denn nun?

Wenn du deine negativen Werte via Zweierkomplement erhälst, dann siind deine Bits im negativen Bereich ja auch nicht mit denen im positiven Bereich identisch.

Beispiel.....
positiver Wert:
+25Grad = 0001_1001

negativer Wert:
-25Grad = 1110_0111


Wenn du jetzt beim negativem Wert das Bit7 weglässt hast du:
0110_0111 und das ergibt---> 103
Da du mit 7-Bit aber nur "negatibe" Werte bis 128 darstellen kannst (0-127), musst du nun noch den "negativen" Wert 103 von den 128 "Möglichkeiten" abziehen.
128 - 103 = 25

Damit hast du dann deine -25Grad! :)


Hast du es so gemeint?

Grüße,
Cassio
 
Ich denke es geht darum, das deine negativen Zahlen im Display mit einem Minus versehen und dann richtig berechnet werden.

Beispiel, wie ich das verstanden habe:
Du hast den Wert -25 Grad undbekommst folgendes übermittelt= 1001_1001
Natürlich ergeben die Bits nicht -25 Grad sondern "153"!
Erst wenn du das Bit7 (welches dir signalisiert, dass es ein negativer Wert ist) aus der Umrechnung herausgenommen wird ergibt dies:
Bit7 = "minus"
Bit0-6= 0001_1001 = 25
nein nach dem Null unter schrietten ist zeigt die Anzeige 317 an also 1_0011_1101 so sieht das aus nach der rechnung
 
Code:
 If Xe.8 = 1 Then
     Xe = Xe And &B000111111
     Locate 1 , 14 : Lcd "-"
    
     Else
     Locate 1 , 14 : Lcd " "
     End If
so bekomme ich das aus gegeben 61 aus gegebn und das komplement ist 2 also richtig ich brauche nur einen befehl mit dem ich das komplement von xe bilden kann. je kälter ich den temp.fühler mache desto geringer wird dieser wert ( 61 ) also muss ich das komplement bilden dann wird er Größer und passt auch genau

ich brauche also einen Befehl um das Komplement von Xe zu bilden einer ne idee ?? hab bis jetzt nix gefunden.
 
Hallo Knut!

Vermutlich verstehe ich hier nur Bahnhof! :cool:

Das Einzige was ich dir sagen kann.... einen BASCOM-Befehl wird es nicht geben sonder nur eine Rechnung!


Ich verstehe dein Problem einfach nicht. :hmmmm:

Schreib hier doch mal ein paar binäre Beispiele von positiven und negativen Werten auf.
Vielleicht komme ich dann drauf.


Gruß,
Cassio
 
also biunär habe ich bei minus 2(000010) grad im moment noch 61 ( 111101) das ist das Komplement also ich muss irgend wie aus

111101

000010 machen
positiv ist das egal da wird der richtige wert ausgegeben

bei 20 °
010100
mit dem Befehl
Code:
If Xe.8 = 1 Then
     Xe = Xe And &B000111111
     Locate 1 , 14 : Lcd "-"

     Else
     Locate 1 , 14 : Lcd " "
     End If
hab ich ja schon festgelegt was er machen soll wenn der Wert Negativ wird da wird ja eigendlich
111111101 gesetzt ich brauche ja aber nur einen wert weit unter den 63 da die Temperatur in deutschland hoffentlich ja nicht über - 63 geht des wegen
Xe = Xe and &B000111111
aber um den richtigen wert gegeben zubekommen muss ich dass irgend wie Umwandel von 61 auf 2 von 57(111001) auf 6(000110)
 
okay so gehts
Code:
If Xe.8 = 1 Then
     Xe = Xe And &B000111111
     Locate 1 , 14 : Lcd "-"
      [U][B]Xe = 63 - Xe[/B][/U]
     Else
     Locate 1 , 14 : Lcd " "
     End If
die wirkliche Temperatur ist die Differenz zwischen 63 Maximaler Negativer wert und dem ist Wert kann man das so machen ??
 
Hallo Knut!

So langsam komme ich dahinter....


Also deine Werte gehen nicht von 0 bis 127 sondern "nur" von 0 bis 63 !

Bei einer negativen Ausgabe musst du die Bits invertieren....
Dies kannst du auch mit "NOT" machen.

Beipsiel:
Wert1 = &B1000_1001

Wert2 = NOT Wert1


Dann ist Wert2 = &B0111_0110 ;)


In deinem Fall also------> Xe = NOT Xe

Hilft dir das weiter?

Grüße,
Cassio
 
Jepp genau das meinte ich aber das mit dem Not funzt net wenn ich das ändere gibt er mir auf einmal 6518 aus

hab ich irgend einen Fehler gemacht
Code:
If Xe.8 = 1 Then
      
     Locate 1 , 14 : Lcd "-"
      Xe = not Xe
     Else
     Locate 1 , 14 : Lcd " "
     End If
 
Hallo Knut!

Na, du musst doch erst noch die betreffenden Bits "auswählen".

Also:
Code:
If Xe.8 = 1 Then 
   Xe = Xe And &B0_0011_1111 
Locate 1 , 14 : Lcd "-" 
   Xe = NOT Xe  
Else 
Locate 1 , 14 : Lcd " " 
End If


Gruß,
Cassio
 
Hallo Knut!

Ups... entschuldige.... war von mir falsch eingefügt. :rolleyes:


Es muss also so lauten:
Code:
If Xe.8 = 1 Then 
   Xe = NOT Xe 
   Xe = Xe And &B0_0011_1111 
   Locate 1 , 14 : Lcd "-" 
Else 
   Locate 1 , 14 : Lcd " " 
End If


Gruß,
Cassio
 
Hallo Knut!

Was mir eben noch aufgefallen ist....

Wieso hast du eigentlich ein 8. Bit? :hmmmm:
Ist deine Variable ein Word?
Dann solltest du sicherheitshalber: Xe = Xe And &B0000_0000_0011_1111
schreiben


Gruß,
Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)