- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Programm möchte nicht.

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Anzeige

    Praxistest und DIY Projekte
    Deswegen müssen die Internen pull ups ja nicht an.
    DOCH, wie willst du denn dann den anderen Zustand hinbekommen (1)????


    ich hab den code editiert, probiers doch nochmal.
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    So jetzt hat es den Effekt, das es nur 3 mal piept, dann die Lampe aufleuchtet. Wenn ich den Taster drücke passiert wieder nichts.

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    hast du den ' vor PORTA.2=1 weggemacht?

    ich hab ihn mittlerweile wegeditiert
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Also so funktioniert das alles mal garnicht.

    Den Pullupwiederstand hab ich erstmal wieder rausgenommen, denn das brachte garnichts.

    Ich hab einfach mal den Taster mit dem Minimalcode:

    Do

    If PINA.2 = 0 Then
    PORTA.0 = 1
    End if

    Loop

    angesteuert. Das klappt so alles super. Taster wird gedrückt, lampe leuchtet.

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    ??? ohne pullup???

    ok, vlt liegts an den goto- befehlen, mit denen kenn ich mich noch nicht so gut aus.

    Code:
    $regfile = "m16def.dat" 
    $crystal = 16000000 
    
    Config Porta.0 = Output 
    Config Portd.7 = Output 
    Config Pina.2 = Input 
    Porta.2 = 1   
    Dim Zeit As Byte 
    
    
    
    Portd.7 = 1 
    Waitms 300 
    Portd.7 = 0 
    Waitms 300 
    Portd.7 = 1 
    Waitms 300 
    Portd.7 = 0 
    
    
    Do
    Zeit=0
    
    Porta.0 = 1 
    
    If Pina.2 = 0 Then 
     Porta.0 = 0       ' könnte man auch noch in die While-Schleife schieben, dann braucht man die if-schleife nicht mehr
    
     While Pina.2=0  
       Zeit = Zeit + 1 
       If Zeit = 10 Then 
         Porta.0 = 1 
         Portd.7 = 1 
       End If 
    
       If Zeit = 15 Then 
         Porta.0 = 1 
         Portd.7 = 1 
         Zeit = 0          
       End If 
    
       Waitms 3000  
       Porta.0 = 0  
       Portd.7 = 0  
    
     Wend 
    
    End If 
    
    Loop
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Jo ohne Pull Ups gehts schonmal halbwegs. Hab es jetzt nochmal etwas umgestellt:

    Code:
    $regfile = "m16def.dat"
    
    $crystal = 16000000
    
    
    Config Porta.0 = Output
    Config Portd.7 = Output
    Config Pina.2 = Input
    Dim Zeit As Byte
    Dim A As Byte
    Dim Main2 As Long
    Dim Main1 As Long
    Dim Main3 As Long
    
    
    Main1:
    Do
    Portd.7 = 1
    Waitms 300
    Portd.7 = 0
    Waitms 300
    Portd.7 = 1
    Waitms 300
    Portd.7 = 0
    Goto Main2
    Loop
    
    Main2:
    Do
    If Pina.2 = 0 Then Goto Main3
    Loop
    
    
    Main3:
    
    Do
    
    Waitms 100
    
    Zeit = Zeit + 1
    
    If Zeit = 5 Then
    Porta.0 = 1
    Waitms 3000
    Porta.0 = 0
    End If
    
    Goto Main2
    
    Loop
    
    End
    Jetzt tut sich nur das Problem auf das mein timer nicht mehr will. Wenn ich allerdings Zeit = 5 setze funktioniert es. Nur mit dem hochzählen möchte es noch nicht so ganz.

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Nur mit dem hochzählen möchte es noch nicht so ganz.
    Edit: quark, bin etwas daneben.

    du arbeitest ja erst Main1 ab, dann kommt Main2 und dann Main3. dann immer abwechselnd Main2 und Main3. in Main3 incrementierst du Zeit (Zeit+1) nach 100ms, dann kommt wieder Main2 und wieder Main3.

    da wird nirgends mit nem "IF Zeit = 5 Then Zeit =0" Zeit zurückgesetzt.

    auserdem ist Zeit nirgends ein Wert zugewiesen. du solltest in Main1 "Zeit=0" schreiben.


    Die meisten Do-Loops kannst du dir auch spaaren, da das Programm da nie hinkommt (davor wird mit Goto gesprungen)
    Code:
    $regfile = "m16def.dat" 
    $crystal = 16000000 
    
    
    Config Porta.0 = Output 
    Config Portd.7 = Output 
    Config Pina.2 = Input 
    Dim Zeit As Byte 
    Dim A As Byte 
    Dim Main2 As Long 
    Dim Main1 As Long 
    Dim Main3 As Long 
    
    
    Main1: 
    Zeit=0
    Portd.7 = 1 
    Waitms 300 
    Portd.7 = 0 
    Waitms 300 
    Portd.7 = 1 
    Waitms 300 
    Portd.7 = 0 
    Goto Main2 
     
    
    Main2: 
    Do 
    If Pina.2 = 0 Then 
     Goto Main3
    Else
     Zeit=0
    End if 
    
    Loop
    
    Main3: 
    
    Do 
    
    Waitms 100 
    
    Zeit = Zeit + 1 
    
    If Zeit = 5 Then 
    Porta.0 = 1 
    Waitms 3000
    Porta.0 = 0 
    End If 
    Waitms 3000 
    Goto Main2
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Wie würde sich das Problem denn jetzt lösen lassen ?

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    hrmpf, ich hab heute schon zuviel gedacht /-)

    ich hab nochmal was editiert, wenn das nicht geht, bin ich mit meinem Latein am Ende.
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  10. #20
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Gibt fehler weil Loop fehlt.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

12V Akku bauen