-
        

+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Zähler für Millisekunden

  1. #1
    enzo
    Gast

    Zähler für Millisekunden

    Anzeige

    Hallo zusammen,
    es ist nicht so, daß ich nicht selber dran gesessen wäre.
    Wahrscheinlich haltet ihr mich für bekloppt aber da gingen schon viele
    Stunden drauf um zu recherchieren.

    Im unteren Code komme ich trotzdem nicht auf mein gewünschtes Ergebnis
    der Millisekundenzählung.
    Timer0 setzt bei Erreichung von 255 den Interrupt. Bei einem Prescale
    von 64 bei 4MHz, ergibt sich ein Reload von 4000/64 = 63 damit er
    alle 1ms einen Interrupt erzeugt, und die Variable 'Millisekunden'
    inkrementiert.

    Achtung: Load Timer0, Relaod zählt dann von 192 auf 255 rauf, also 63 mal, dann efolgt der Interrupt.

    In der Do/Loop Schleife sollte ich dann alle
    Millisekunden einen Wert angezeigt bekommen, durch die Verzögerung der
    Darstellung natürlich nicht notwenig, aber die dargestellten Zeiten
    sollten in ms dargestellt analog der Realzeit sein.

    Nur die Zeit bzw die Werte die dargestellt werden zählen viel zu
    langsam. Dafür das es Milliskeunden sind, müßte pro Sekunde der Wert um 1000 steigen. Tut er aber nicht, ca um den Faktor 100 zu langsam.

    Was mache ich falsch ?


    $regfile = "m8def.dat"
    $crystal = 4000000

    Dim Millisekunden As Long
    Dim K As Long

    Const Reload = 63
    Config Timer0 = Timer , Prescale = 64

    On Timer0 Timer1int
    Enable Interrupts
    Enable Timer0

    Do
    Print Millisekunden
    End If
    Loop


    Timer1int:
    Load Timer0 , Reload
    Incr Millisekunden
    Return

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    iss klar lol.

    du musst statt reload auf 63 zu setzen es auf 192 setzen...

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

  3. #3
    enzo
    Gast

    funzt trotzdem nicht

    IM AVR SIMULATOR ERHALTE ICH.

    0
    0
    1
    1
    2
    2
    3
    4
    5
    6
    6
    7
    7
    8
    9
    etc

    statt zB.:
    1000
    2125
    3125
    4147
    etc

    WARUM ?????

    lG

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    das verstehe ich jetzt nicht ganz
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.955
    Blog-Einträge
    1
    Die do loop Schleife im Hauptprogramm ist ja nicht synchronisiert mit der Timer Routine, von daher kann manchmal ein Wert mehrfach ausgegeben werden

    Wegen der Timerberechnung lad dir mal das Programm runter
    http://www.roboternetz.de/phpBB2/dlo...le&file_id=169

    Das generiert dir gleich den Code den du brauchst

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    50
    Beiträge
    576
    Hallo Frank

    Habe mir dein Programm mal runtergeladen und endpackt.
    Dazu eine Frage.
    Warum braucht das Programm eigentlich Administratorechte ?!
    (noch nicht installiert)

    Könnte das nicht auch ohne gehen.???!

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Warum braucht das Programm eigentlich Administratorechte ?!
    (noch nicht installiert)

    Könnte das nicht auch ohne gehen.???!
    Das Programm ist in VisualBasic geschrieben.

    Um Visual Basic Programme auszuführen braucht man die Visual Basic Runtime Umgebung und gegebenenfalls diverse ActiveX Komponenten und DLL-Dateien die im Programm verwendet werden.
    Wenn man mit Visual Basic eine Installationsroutine zusammenstellt, wird automatisch das ganze Zeugs dazu gepackt und um das zu installieren braucht man Administratorrechte.
    Die VBRuntime Umgebung braucht man aber nur einmal zu installieren und nicht mit jedem VB-Programm.
    D.h. wenn die bei dir schon installiert ist, brauchst du nicht die setup.exe ausführen, sondern kannst dir aus dem CAB-File einfach nur mit Winzip oder einem anderen Packprogramm die rnAvr.exe (das ist das eigentliche Programm) extrahieren und starten. Dafür brauchst du dann auch keine Administratorrechte.
    Sollte das Programm beim Start meckern, dass irgendwelche Dateien fehlen, reicht es oft, wenn du die ebenfalls aus dem CAB exrahierst und in demselben Ordner speicherst wie die rnAVR.exe.

    Ob das bei dir klappt, hängt davon ab, ob du die VB Runtime schon mal irgendwann alleine oder zusammen mit einem anderen Visual Basic programm installiert hast. Auf meinem Rechner reicht die rnAVR.exe alleine völlig aus.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    28.11.2004
    Beiträge
    29
    Jetzt weiß ich, woher meine Abneigung gegen VB herstammt.

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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