- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Zwischen 2 Verschiedenen Programmen umschalten

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    12.10.2006
    Beiträge
    21
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Wie hast Du den Umschalter angeschlossen?
    Ich hoffe, Du hast ihn wie einen Taster gegen GND geschaltet. Dann muss es funktionieren, weil gedrückter Taster (Umschalter) ergibt 0 (Sprung nach code2), nicht gedrückter Taster ergibt 1 (Sprung nach code1).
    Wenn er nur zur sub code2 verzweigt, dann sieht Dein Eingang Pind.4 keine 1, sondern nur 0.

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82
    ich danke euch sehr!
    habe es so gelöst:


    [c]
    $regfile = "m16def.dat"
    $crystal = 1000000

    Config Lcd = 16 * 4
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

    Initlcd

    Cls
    Cursor Off

    Dim Gray As Word
    Dim Lobyte As Word
    Dim Hibyte As Word
    Config Pind.4 = Input
    Umschalter Alias Pind.4
    Config Pind.5 = Input
    Pegel Alias Pind.5
    Dim Zahl As Byte
    Dim Zahl1 As Byte
    Dim Zahl2 As Byte
    Dim Code1 As Byte
    Dim Code2 As Byte
    Dim Programm As Byte
    Dim Testen As Byte
    Dim Umschalter As Word

    Testen:
    Do
    If Pegel = 1 Then
    Gosub Programm
    Else
    Locate 1 , 1
    Lcd "PegelGeberTester"

    Locate 3 , 1
    Lcd "!!!KEIN GEBER!!!"
    Waitms 600
    Cls
    Wait 1


    End If
    Loop


    Programm:
    Code1:

    Do
    Locate 1 , 1
    Lcd "P.G.Tester(GRAY)"
    Locate 4 , 1
    Lcd "Ausbildung EGS05"

    Locate 2 , 5
    Lcd "*-"
    Locate 2 , 10
    Lcd "-*"
    Locate 3 , 3
    Lcd "------------"


    Do

    Lobyte = Pina
    Hibyte = Pinc
    Hibyte = Hibyte And &B0000000000001111

    Rotate Hibyte , Left , 8

    Gray = Lobyte + Hibyte

    Gray = Gray2bin(gray)



    Locate 2 , 7
    Lcd Gray

    Waitms 250
    Locate 2 , 7
    Lcd " "
    If Umschalter = 1 Then
    Gosub Code2
    Else
    Loop




    Code2:


    Do
    Locate 1 , 1
    Lcd "P.G.Tester (BCD)"
    Locate 4 , 1
    Lcd "Ausbildung EGS05"


    Locate 2 , 5
    Lcd "*-"
    Locate 2 , 10
    Lcd "-*"
    Locate 3 , 3
    Lcd "------------"


    Do

    Zahl = Pina
    Zahl = Zahl And &B00001111
    Locate 2 , 9
    Lcd Zahl

    Zahl1 = Pind
    Zahl1 = Zahl1 And &B00001111
    Locate 2 , 8
    Lcd Zahl1

    Zahl2 = Pinc
    Zahl2 = Zahl2 And &B00001111
    Locate 2 , 7
    Lcd Zahl2

    Waitms 250
    Locate 2 , 7
    Lcd " -"




    If Umschalter = 0 Then
    Gosub Code1
    Else
    Loop
    End If
    End If
    Loop

    Loop
    End
    [/c]

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    ...ich mal wieder!

    Und - hat´s funktioniert?

    ´n paar kleine Tips:

    Wenn Du "Umschalter alias Pind.4" schreibst, brauchst Du "Dim Umschalter as..." nicht mehr. Dem Namen "Umschalter" ist dann automatisch das Bit Pind.4 zugeordnet. Wenn Du Umschalter zusätzlich als Word dimensionierst, verschenkst Du volle 15 Bits (1 Word = 2 Byte = 16 Bit!), die ziemlich umsonst freigehalten werden.

    Gleiches gilt für Code1, Code2, Programm und Testen: Solche "Labels" muss man nicht dimensionieren. Du kannst sie einfach so in den Code reinschreiben.





    Code:
    If Umschalter = 0 Then
    Gosub Code1
    Else
    Loop
    End If
    End If
    - hat der Compiler da nicht gemeckert? Normalerweise muss für jedes "if" genau (!) ein "End if" kommen. Miene Bascom-Version motzt zumindestens immer sofort, wenn das Verhätnis nicht genau 1:1 ist.
    Wenn Du für beide "if"-Fälle nur genau einen befehl hast, kann das auch in eine Zeile, dann barucht´s gar kein "end if":

    If Umschalter = 0 then gosub Code1 else loop

    Gruß & Co.,

    Daniel

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress