- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Programme per Taster anwählen

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Anzeige

    Powerstation Test
    Huh,schlecht geschlafen oder warum heulste mich an ?
    Gruß
    Ratber

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    ach ratber... keine sorge, mir gehen nur extra-sensible aufn geist ^^

    so, hier iss das programm so wies gehen würde:

    Code:
    '###################################################
    '#Lauflichtsteuerung mit 3 Verschiedenen Programmen#
    '###################################################
    
    
    $regfile = "M8def.dat"
    $crystal = 3686400
    
    Ddrd = &B11100000                                           'PD7, PD6, PD5 als Ausgänge festlegen, rest Eingang
    Portd = &B00001100                                          'PullUps von PD2, PD3 Aktivieren
    
    Dim Zler As Byte
    Dim Pr1_3 As Byte
    
    On Timer1 Ontimer1
    Config Timer1 = Timer , Prescale = 64                       'Timertakt = Crystal / 64
    Enable Timer1                                               'Timer1 einschalten
    Enable Interrupts                                           'Interrupts Global einschalten
    Const Timervorgabe = 36736                                  'Hat mir rnAVR so berechnet
    
    
    '###Deklarationen###
    
    Led_gr Alias Portd.7                                        'LED Grün
    Led_ge Alias Portd.6                                        'LED Gelb
    Led_ro Alias Portd.5                                        'LED Rot
    Prwata Alias Pind.3                                         'Programmwahltaster
    
    Declare Sub Pr_1
    Declare Sub Pr_2
    Declare Sub Pr_3
    
    
    '###Hauptschleife###
    
    Do
    Debounce Prwata , 0 , Pr_wechs , Sub                        'Programmwahltaster entprellen und zu Pr_wechsel springen
    Gosub Pr_wechsel
    Loop
    
    '###OnTimer1###
    
    Ontimer1:
    Timer1 = Timervorgabe
    If Zler = 10 Then                                           'Wenn Zler = 9 dann...
    Zler = 1                                                    '...Zler = 0
    End If
    Incr Zler                                                   'Zler + 1
    
    Return
    
    
    
    
    
    '###Unterprogramme###
    Pr_wechs:
       Incr Pr1_3
       Gosub Pr_wechsel
    Return
    
    
    Pr_wechsel:
    
    If Pr1_3 = 3 Then                                           'Wenn Pr1_3 = 2 dann...
     Pr1_3 = 0                                                  '...Pr1_3 = 0
    End If
    
    If Pr1_3 = 0 Then                                           'Wenn Pr1_3 = 0 dann...
     Gosub Pr_1
    End If                                                      '...zum Sub PR_1 springen
    
    If Pr1_3 = 1 Then                                           'Wenn Pr1_3 = 1 dann...
     Gosub Pr_2                                                 '...zum sub PR_2 springen
    End If
    
    If Pr1_3 = 2 Then
     Gosub Pr_3
    End If
    
    Return
    
    '----------------
    
    Pr_1:
    
    Return
    
    
    '---------------
    
    Pr_2:
    
    Return
    
    '---------------
    
    Pr_3:
    
    Return
    ich hoffe es geht auch ^^

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Erst mal vielen dank für die gute hilfe Ich werde es heute abend testen, habe leider immoment keine Zeit. Ich werde dann berichten wie es läuft.

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    juhuuu es läuft nun

    Hier mal der fertige Code:

    Code:
     '###################################################
    '#Lauflichtsteuerung mit 3 Verschiedenen Programmen#
    '###################################################
    
    
    $regfile = "M8def.dat"
    $crystal = 3686400
    
    Ddrd = &B11100000                                           'PD7, PD6, PD5 als Ausgänge festlegen, rest Eingang
    Portd = &B00001100                                          'PullUps von PD2, PD3 Aktivieren
    
    Dim Zler As Byte
    Dim Pr1_3 As Byte
    
    On Timer1 Ontimer1
    Config Timer1 = Timer , Prescale = 64                       'Timertakt = Crystal / 64
    Enable Timer1                                               'Timer1 einschalten
    Enable Interrupts                                           'Interrupts Global einschalten
    Const Timervorgabe = 36736                                  'Hat mir rnAVR so berechnet
    
    
    '###Deklarationen###
    
    Led_gr Alias Portd.7                                        'LED Grün
    Led_ge Alias Portd.6                                        'LED Gelb
    Led_ro Alias Portd.5                                        'LED Rot
    Prwata Alias Pind.3                                         'Programmwahltaster
    
    Declare Sub Pr_1
    Declare Sub Pr_2
    Declare Sub Pr_3
    
    
    '###Hauptschleife###
    
    Do
    Debounce Prwata , 0 , Pr_wechs , Sub                        'Programmwahltaster entprellen und zu Pr_wechsel springen
    Gosub Pr_wechsel
    Loop
    
    '###OnTimer1###
    
    Ontimer1:
    Timer1 = Timervorgabe
    If Zler >= 3 Then                                           'Wenn Zler = 10 dann...
    Zler = 0                                                    '...Zler = 1
    End If
    Incr Zler                                                   'Zler + 1
    
    Return
    
    
    
    
    
    '###Unterprogramme###
    Pr_wechs:
       Incr Pr1_3
       Gosub Pr_wechsel
    Return
    
    
    Pr_wechsel:
    
    If Pr1_3 >= 3 Then                                          'Wenn Pr1_3 = 2 dann...
     Pr1_3 = 0                                                  '...Pr1_3 = 0
    End If
    
    If Pr1_3 = 0 Then                                           'Wenn Pr1_3 = 0 dann...
     Gosub Pr_1
    End If                                                      '...zum Sub PR_1 springen
    
    If Pr1_3 = 1 Then                                           'Wenn Pr1_3 = 1 dann...
     Gosub Pr_2                                                 '...zum sub PR_2 springen
    End If
    
    If Pr1_3 = 2 Then
     Gosub Pr_3
    End If
    
    Return
    
    '----------------
    
    Pr_1:
    
    If Zler = 1 Then
     Led_ro = 1
     Led_ge = 1
     Led_gr = 1
    End If
    
    If Zler = 2 Then
     Led_ro = 0
     Led_ge = 0
     Led_gr = 0
    End If
    
    If Zler = 3 Then
     Led_ro = 0
     Led_ge = 1
     Led_gr = 0
    End If
    
    
    
    
    
    
    Return
    
    
    '---------------
    
    Pr_2:
    
    If Zler = 1 Then
     Led_ro = 1
     Led_ge = 0
     Led_gr = 1
    End If
    
    If Zler = 2 Then
     Led_ro = 0
     Led_ge = 1
     Led_gr = 0
    End If
    
    If Zler = 3 Then
     Led_ro = 1
     Led_ge = 1
     Led_gr = 1
    End If
    
    
    Return
    
    '---------------
    
    Pr_3:
    
    If Zler = 1 Then
     Led_ro = 1
     Led_ge = 0
     Led_gr = 0
    End If
    
    If Zler = 2 Then
     Led_ro = 0
     Led_gr = 1
     Led_ge = 0
    End If
    
    If Zler = 3 Then
     Led_ro = 0
     Led_gr = 0
     Led_ge = 1
    End If
    Return

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von x-ryder
    ach ratber... keine sorge, mir gehen nur extra-sensible aufn geist ^^
    Ahhja
    Gruß
    Ratber

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Eine Frage habe ich aber noch.
    Wie kann ich nun die geschwindigkeit mit einem Taster erhöhen? von -100% - +100%
    Am besten in 10% Schritten. Wenn er bei +100% angekommen ist Springt er auf -100% und geht dann wieder in 10% Schritten hoch.

    Ich habe versucht die "const Timervorgabe" zu ändern aber das geht nicht. Gibts da einen anderen Trick?

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Timervorgabe nich als Konstante sondern als Variable zu deklarieren.
    Dim Timervorgabe As Interger
    z.B.
    Konstanten haben immer einen festen Wert. Deshlab geht es nicht. Der Rest deines Programmes wie du es abgeändert hast kennt ja noch keiner, aber ich denke du bist auf dem richtigen Weg!

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Warum nehme ich denn z.B Interger und nicht Word? Das hab ich irgentwie noch nie verstanden.


    Hier mal der Code wie es immoment aussieht. Aber das geht nicht weil ich Timervorgabe keinem Wert zugewiesen habe und ich wiess auch echt nicht genau wie und wo ich das machen soll.




    Code:
     '###################################################
    '#Lauflichtsteuerung mit 3 Verschiedenen Programmen#
    '###################################################
    
    
    $regfile = "M8def.dat"
    $crystal = 3686400
    
    Ddrd = &B11100000                                           'PD7, PD6, PD5 als Ausgänge festlegen, rest Eingang
    Portd = &B00001100                                          'PullUps von PD2, PD3 Aktivieren
    
    Dim Zler As Byte
    Dim Pr1_3 As Byte
    Dim Schneller As Byte
    Dim Timervorgabe As Double
    
    
    On Timer1 Ontimer1
    Config Timer1 = Timer , Prescale = 64                       'Timertakt = Crystal / 64
    Enable Timer1                                               'Timer1 einschalten
    Enable Interrupts                                           'Interrupts Global einschalten
    
    
    '###Deklarationen###
    
    Led_gr Alias Portd.7                                        'LED Grün
    Led_ge Alias Portd.6                                        'LED Gelb
    Led_ro Alias Portd.5                                        'LED Rot
    Prwata Alias Pind.3                                         'Programmwahltaster
    Speed Alias Pind.2
    
    
    Declare Sub Pr_1
    Declare Sub Pr_2
    Declare Sub Pr_3
    
    
    '###Hauptschleife###
    
    Do
    
    Debounce Prwata , 0 , Pr_wechs , Sub                        'Programmwahltaster entprellen und zu Pr_wechsel springen
    Debounce Speed , 0 , S_change , Sub
    
    Gosub Pr_wechsel
    Loop
    
    '###OnTimer1###
    
    Ontimer1:
    Timer1 = Timervorgabe
    If Zler >= 3 Then                                           'Wenn Zler = 10 dann...
    Zler = 0                                                    '...Zler = 1
    End If
    Incr Zler                                                   'Zler + 1
    
    Return
    
    
    
    '###Unterprogramme###
    
    S_change:
    
    If Schneller = 3 Then
     Schneller = 0
    End If
    
    Incr Schneller
    
    If Schneller = 0 Then
     Timervorgabe = 7936
    End If
    
    If Schneller = 1 Then
     Timervorgabe = 36736
    End If
    
    If Schneller = 2 Then
     Timervorgabe = 46336
    End If
    
    Return
    
    
    Pr_wechs:
       Incr Pr1_3
       Gosub Pr_wechsel
    Return
    
    
    Pr_wechsel:
    
    If Pr1_3 >= 3 Then                                          'Wenn Pr1_3 = 2 dann...
     Pr1_3 = 0                                                  '...Pr1_3 = 0
    End If
    
    If Pr1_3 = 0 Then                                           'Wenn Pr1_3 = 0 dann...
     Gosub Pr_1
    End If                                                      '...zum Sub PR_1 springen
    
    If Pr1_3 = 1 Then                                           'Wenn Pr1_3 = 1 dann...
     Gosub Pr_2                                                 '...zum sub PR_2 springen
    End If
    
    If Pr1_3 = 2 Then
     Gosub Pr_3
    End If
    
    Return

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    zb. direkt vor den "Deklarationen" mit "Timervorgabe = 100" (oder nem beliebigem Startwert deiner Wahl)
    Gruß
    Ratber

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Ja das war das erste was ich ausprobiert habe, blos nimmt der das irgentwie nicht an. Ich bekomme trotzdem noch den selben Fehler wie vorher beim Compilieren...

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress