Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablen zusammenrechnen
Hallo liebe Leute
Ich bin Bascomneuling und habe ein kleines Problem mit den zusammenrechnen von Variablen.
Hier mein Code:
$regfile = "m8def.dat".dat "
$crystal = 1000000
Config Pind.4 = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Druck As Word
Dim Impulslaenge As Word
Dim Raus As Word
Do
Bitwait Pind.4 , Reset
Pulsein Impulslaenge , Pind , 4 , 0
Impulslaenge = Impulslaenge
Getadc(0) = Druck
Impulslaenge + Druck = Raus
If Raus <= 2500 Then
Portb.1 = 1 : Waitms 1 : Portb.1 = 0
Elseif Raus > 2500 And Raus <= 10000 Then
Portb.1 = 1 : Waitms 5 : Portb.1 = 0
Elseif Raus > 10000 And Raus <= 15000 Then
Portb.1 = 1 : Waitms 10 : Portb.1 = 0
End If
Loop
Ich möchte die Variable Impulslaenge und Druck addieren
und in Raus speichern.
Kann mir jemand weiterhelfen?
Raus = Impulslaenge + Druck
???????
MfG Klebwax
Moin
Was hast nicht verstanden?
Das ist die Lösung deines Problems. Bzw. musst du GetADC(0) auch noch umdrehen
Das Ganze ist wie in C aufgebaut und das Ergebnis steht vor dem Gleichheitszeichen
Ergebnis = Operation
Sprich, aus:
Getadc(0) = Druck
Impulslaenge + Druck = Raus
wird:
Druck = Getadc(0)
Raus = Impulslaenge + Druck
Danke für die Antwort.Hat geklappt.
Ist wohl Anfängerfehler
Hallo Leute
Habe hier noch eine Anfängerfrage:
Ich möchte hier den Eingang Pind.3 mit der Pulsein Pind.4 verzögern und über Portd.5 ausgeben
Und das mit der If then Anweisung.
Kann mir jemand zeigen wie ich das mache?
Config Pind.3 = Input
Config Pind.4 = Input
Config Portd.5 = Output
Do
Bitwait Pind.4 , Reset
Pulsein X , Pind , 4 , 0
X = X * 100
If X <= 2500 Then
Portd.5 = 1 : Waitms 1 : Portd.5 = 0
Elseif X > 2500 And X <= 10000 Then
Portd.5 = 1 : Waitms 2 : Portd.5 = 0
Elseif X > 10000 And X <= 15000 Then
Portd.5 = 1 : Waitms 3 : Portd.5 = 0
End If
Loop
Picojetflyer
02.07.2013, 06:03
If X <= 2500 Then
Portd.5 = 1
Waitms 1
Portd.5 = 0
endif
If X > 2500 AND X <= 10000 Then
Portd.5 = 1
Waitms 2
Portd.5 = 0
Endif
if X > 10000 AND X <= 15000 Then
Portd.5 = 1
Waitms 3
Portd.5 = 0
End If
So würd ich es mal probieren, achte beim AND auf die Großschreibung! Bascom ist da nachtragend.
Hallo
Das habe ich soweit verstanden.Aber jetzt möchte ich das Eingangssignal von pind.3 über diese Anweisung verzögern.
Picojetflyer
03.07.2013, 06:08
Hallo Leute
Habe hier noch eine Anfängerfrage:
Ich möchte hier den Eingang Pind.3 mit der Pulsein Pind.4 verzögern und über Portd.5 ausgeben
Und das mit der If then Anweisung.
Kann mir jemand zeigen wie ich das mache?
Config Pind.3 = Input
Config Pind.4 = Input
Config Portd.5 = Output
........
........
Horst12
Hallo
Das habe ich soweit verstanden.Aber jetzt möchte ich das Eingangssignal von pind.3 über diese Anweisung verzögern.
Loop
Könnte an der frühen Stunde liegen, aber mir erschließt nicht ganz was du damit meinst. Was möchtest du denn an oder mit Pind.3 verzögern? Als Input kannst du ja nur auf ein Signal warten/hoffen, aber warum verzögern??? Wofür soll das denn sein?
Gruß
Matthias
Hallo Matthias
Also es geht um eine Zündanlage die mit einem Hallsensor ausgerüstet ist. Mit Pulsein möchte ich die Drehzahl messen und mit diesem Wert den Ausgang verzögern.
Deshalb mit Pind.4 die Zeit messen des lo Signals
Über Pind.3 kommt das Hi und lo Signal rein.
Das lo Signal will ich mit Hilfe des Drehzahlwertes verzögern.
Ich weiß es gibt noch andere Lösungen, aber eins nach dem andern. :)
Picojetflyer
04.07.2013, 06:18
Also zusammengefasst.
Du bekommst ein PWM/PPM ähnliches Signal, An/Aus/An/Aus. Die Länge des High Signals ist variabel sowie die des Low Signals.
Du willst mit den Befehl Pulsein mittels Pind.3 die länge von High Signals messen und mit Pind.4 die länge des Low Signals.
Das ist doch bestimmt ein Motor mit OT Geber, warum misst du nicht einfach mit ein Timer den Abstand von High Flanke zu High Flanke.
Anhand des ermittelten Timerwerts und ein bissel Winkelfunktion könntest du theoretisch Winkel genau die Vor bzw. Nachzündung einstellen. Ich denke auch der Pulsein befehl würd da nicht genau genug für sein.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.