- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 5 von 5

Thema: Sekunden Anzahl in Minuten:Sekunden umrechnen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.02.2005
    Beiträge
    663

    Sekunden Anzahl in Minuten:Sekunden umrechnen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi,

    ich habe eine Sekunden Anzahl, z.B. 300. Diese möchte ich umrechnen in 5:00. Also Minuten:Sekunden. Gibt es in Bascom dafür irgendwelche Funktionen oder so?

    Gruß, Björn
    Nur tote Fische schwimmen mit dem Strom...

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Ich denke das geht nur umständlich über die Systemzeit.
    Du kannst beim Sekunden zählen ja gleich die Minuten beachten.

    z.B.
    Code:
    blablabla Code der ISR
    
    Incr Sekunden
    If Sekunden = 60 then
    Sekunden = 0
    Incr Minuten
    End If
    
    blabla Code der ISR
    
    Return
    Aber ich denke mal du willst rückwärts zählen.
    Also...
    Minuten = Sekunden / 60
    Sekunden = Sekunden - ( Minuten * 60 )
    Dazu sollten die Sekunden der ISR aber einen anderen Namen haben als Sekunden. Den Namen musst du in der Formal dem entsprechend auch ändern
    Und Bascom kann pro Zeile nur eine Operation. Das musst du dann aufteilen und Hilfvariablen benutzen.

    PS: Zuviel zum Thema du hast den Rest schon vorbereitet :P

    Benutzt du die Demo von BASCOM? Ich könnte mir vorstellen, das du über die Grenze von 2KB kommst. Die neuste Demo kann angeblich 4KB. Das dürfte für deine Anwendung schon reichen.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.10.2004
    Beiträge
    40
    Hallo!
    In Basic(VB) heißt die Funktion MOD für Divisons-Rest hab aber auf
    die schnelle sowas in Bascom nicht gefunden.
    Versuchsmal mal so.
    Print B und Print D ist das Ergebnis

    mfg,MX3




    $regfile = "2313def.dat"
    $crystal = 4000000
    Baud = 9600

    Dim A As Word
    Dim B As Word
    Dim C As Word
    Dim D As Word

    A = 450
    B = A / 60
    C = B * 60
    D = A - C
    Do

    Print A ' Sekunden Gesamt
    Print B ' nur Minuten
    Print C ' nur Minuten aber auf Sek gerechnet
    Print D ' Rest Sekunden

    Wait 2
    Loop

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.02.2005
    Beiträge
    663
    Jo vielen Dank! Funktioniert.

    Gruß, Björn
    Nur tote Fische schwimmen mit dem Strom...

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Auch in Bascom AVR gibt es den MOD Befehl, sodass sich obiges Beispiel so darstellt:


    Code:
    A = 300
    B = 300 / 60   ' Minuten
    C = 300 MOD 60 ' Sekunden
    BASCOM-AVR hat aber auch einiges an Zeitfunktionen zu bieten.

    mit String = TIME(LONG)
    kann man der Funktion TIME die Sekunden in einer LONG-Variablen übergeben und erhält einen Zeitstring mit der umgerechneten Zeit in Stunden:Minuten:Sekunden

    Code:
    dim lSeconds as  Long
    Dim StrTime as String * 8
    $Lib "DateTime.lbx"
    
    
    lSeconds = 300
    
    strTime = time(lSeconds)
    
    print strTime
    Die Ausgabe ist 00:05:00


    Leider wird hier die 16-Bit Division Routine (noch) nicht automatisch gelinkt, daher muss, wenn nicht schon eine solche irgendwo sonst im Programm vorkommt (Word oder Integer-Division) mit z.B.
    Dim W1 as Word
    W1 = W1/W1
    etwas getrickst werden.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

Berechtigungen

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

12V Akku bauen