- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: rauf-runterzählen

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Warum fragst du dann auf "<130" ab?
    Wenn kein Taster gedrückt ist, soll sich doch gar nichts ändern, oder?
    Im Moment wird er mit etwa 50Hz runterzählen, wenn kein Taster gedrückt ist. Dann sind alle LEDs nur schwach an.
    Ich würde das dann so machen:

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    Config Adc = Single , Prescaler = Auto
    Config Portc = Output
    
    Portc = 30                                                  'LED 1 ist an         PORTC=00011110
    Start Adc
    
    Dim I As Byte
    Dim X As Word
    
    X = 1
    I = 1
    Do
       X = Getadc(7)
       If X > 0 Then
          If X < 130 Then                                       'Taster für runter gedrückt
             I = I - 1
             If I = 255 Then I = 4                              'dann hat es einen Überlauf gegeben, I ist Byte, also 0-255
          Else                                                  'Taster für rauf gedrückt
             I = I + 1
             If I = 6 Then I = 0
          End If
          Portc = 31                                            'Alle LEDs aus
          Portc.i = 0                                           'LED Nr. i an
       End If
       Waitms 20                                                'das ganze etwa 50 mal pro Sekunde
    Loop
    
    End
    Gruß

    Rolf

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    hallo rolf,

    auch dein code funzt genau wie die andern nicht
    vielleicht ist meine platine (oder der atmega) kaputt?!?!
    könnte vielleicht jemand freundlicherweise das prog mal mit seinem RN-Control ausprobieren??

    mfg
    chris

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Was passiert denn jetzt?
    Ist die erste LED an, wenn kein Taster gedrückt ist?
    Und wenn du einen Taster drückst, bleibt danach die LED an?
    Erklär mal etwas genauer, was nicht geht.

    Gruß

    Rolf

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    am anfang, nach anlegen der spannung leuchtet led1.
    wenn kein taster gedrückt ist, ist das ganze wie ein lauflicht!! wahnsinnig schnell, könnte vielleicht 50hz sein (wegen waitms 20??).
    wenn man eine taste drückt, ändert sich überhauptnichts!!
    habe jetzt auch schon den atmega32 gegen einen anderen atmega32 ausgetauscht, ohne erfolg!!

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Bist du dir ganz sicher, dass immer x=0 ist, wenn kein Taster gedrückt ist? Das Programm sollte bei X=0 nicht in den Bereich laufen, wo die Ausgänge geändert werden. Ist X aber >0, dann wird der erste Teil der IF-Abfrage dauernd durchlaufen und du bekommst ein Lauflicht.
    Hast du vielleicht noch eine LED, die du an PORTC.5 klemmen kannst?
    Die könnte man dann benutzen um anzuzeigen, dass tatsächlich x=0 ist.
    Oder du gibst den Wert von X über Print an den PC, wenn du eine Verbindung hast. Oder auf ein Display.
    Im Moment denke ich jedenfalls, ist der Wert von X das Problem.

    Gruß

    Rolf

  6. #16
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Um das Mysterium zu lüften:
    Lt. RNControl Test Programm ist die korrekte Tastenabfrage folgendermassen:
    Code:
       Start Adc
       Ws = Getadc(7)
       If Ws < 1010 Then
          Select Case Ws
             Case 410 To 450     'TASTE 1 gedrückt
             Case 340 To 380     'TASTE 2 gedrückt
             Case 265 To 305     'TASTE 3 gedrückt
             Case 180 To 220     'TASTE 4 gedrückt
             Case 100 To 130     'TASTE 5 gedrückt
          End Select
       End If
    Also ist KEINE Taste ist offenbar >= 1010




    ANderes Problem:
    Code:
     If X < 130 Then 
      I = I - 1 
      Waitms 20 
      If I = 1 Then ....
      Elseif I > 5 Then ....
    Beim Runterzählen macht man üblicherweise
    Elseif I < 1 Then ....
    Die Zahl kann ja nur kleiner werden und nicht grösser

    Noch was :
    bei I > 5 oder < 1 setzt du immer I=1
    da du aber sofort +1 oder -1 rechnest, kommt also entweder 2 oder 0 raus, die "1" kommt NIE
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    kann mir den niemand helfen??

    ich habe schon oft gelesen, wie ein paar leute die geschwindigkeit stufenweise mit zwei tastern geregelt haben! wie funktioniert das?? kann sich bitte jemand melden??
    das müsste doch das gleiche sein, oder???

    mfg
    chris

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test