-         

Ergebnis 1 bis 3 von 3

Thema: Mal wieder eine "fast" funktionierende Stoppuhr

  1. #1
    Unregistriert
    Gast

    Mal wieder eine "fast" funktionierende Stoppuhr

    Anzeige

    Hallo Community,

    so langsam aber sicher bin ich am verzweifeln.

    Ich bin dabei eine simple Stopuhr zu basteln.
    Soweit funktioniert es auch so wie es soll, allerdings stimmt die gestoppte Zeit überhaupt nicht.

    Ich benutze ein Arduino nano clone, mit einem Atmega328p und dem Ext.8Mhz quartz.

    Einen Code habe ich im Internet gefunden den ich ein wenig geändert habe.

    $regfile = "m328pdef.dat"
    $crystal = 8000000
    $baud = 9600

    $hwstack = 32
    $swstack = 8
    $framesize = 24


    '-------------------------
    Config Pind.2 = Input
    Config Pind.3 = Input
    Portd.2 = 1
    Portd.3 = 1
    Config Portd.2 = 0
    Config Portd.3 = 0
    '----------


    Dim Millisekunden As Integer
    Dim Minuten As Byte
    Dim Sekunden As Byte
    Dim Runden As Byte
    Dim Flag As Integer


    Config Timer1 = Timer , Prescale = 256
    Const Timervorgabe = 34286
    On Timer1 Timer_irq
    Enable Interrupts


    Millisekunden = 00
    Minuten = 0
    Sekunden = 0
    Flag = 0

    Declare Sub Start1
    Declare Sub Stop1
    Declare Sub Reset1

    '---------------------------------------------
    Do

    Debounce Pind.2 , 0 , Start1 , Sub
    Debounce Pind.3 , 0 , Stop1 , Sub

    Loop
    '---------------------------------------------
    Start1:
    Enable Timer1
    Print "Start"
    Return
    '-----------------------------------------
    Stop1:
    Print "Stop"
    Print "Zeit:" ; Minuten ; ":" ; Sekunden ; ":" ; Millisekunden ; " "
    Disable Timer1
    Reset Timer1
    Sekunden = 0
    Minuten = 0
    Millisekunden = 0
    Flag = 0
    Return

    '------------------------------

    Timer_irq:
    Timer1 = Timervorgabe
    Incr Millisekunden
    If Millisekunden = 1000 Then
    Incr Sekunden
    Millisekunden = 00
    End If
    If Sekunden = 60 Then
    Incr Minuten
    Sekunden = 00
    End If

    Incr Flag

    Return



    Seht ihr einen Fehler ?
    Ich bekomme es einfach nicht hin.

    Vielen Dank im Voraus.

    - - - Aktualisiert - - -

    Ich glaube ich habe das Problem gelöst.

    Bei einem Prescaler von 256 und einer Vorgabe von 62411 scheint es zu funktionieren, allerdings werden die Millisekunden immer im einstelligen Bereich angezeigt.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.11.2009
    Ort
    Gerblingerode
    Alter
    51
    Beiträge
    207
    Ich benutze ein Arduino nano clone, mit einem Atmega328p und dem Ext.8Mhz quartz.
    haben die nicht 16 HHz ?!

    würde aber die Reihenfolge von Print und dem aktivieren / deaktivieren des Timer ändern, sonst misst Du die zeit zum ausgeben noch mit ..

    Code:
    Start1:
    Enable Timer1
    Print "Start"
    Return
    
    '-----------------------------------------
    Stop1:
    Disable Timer1
    Print "Stop"
    Print "Zeit:" ; Minuten ; ":" ; Sekunden ; ":" ; Millisekunden ; " "
    Reset Timer1
    Sekunden = 0
    Minuten = 0
    Millisekunden = 0
    Flag = 0
    Return
    
    

    habe mehrere Arduino nano clone mit dem gleich Programm (1 Hz Blinklicht) laufen, nach einer Zeit blinken die alle unterschiedlich ...


    Geändert von Feuerring (09.08.2016 um 01:05 Uhr)
    Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    .. Ich benutze ein Arduino nano clone, mit einem Atmega328p und dem Ext.8Mhz quartz ..
    haben die nicht 16 HHz ?! ..
    Genau das (ok, das "HHz ist wohl ein Rechtschreibfehler) - und bei meiner Einstellung der Fuses wird angezeigt "Ext. Crystal Osc. 8.0- MHz; Start-up .." - damit soll angedeutet werden: 8.0 MHz und darüber (nach oben offen). Daher gehört in die Startfrequen ganz bestimmt statt Deinem "$crystal = 8000000" ein "$crystal = 16000000" (obwohl ich keinerlei Ahnung von Bascom habe).

    .. habe mehrere Arduino nano clone mit dem gleich Programm (1 Hz Blinklicht) laufen, nach einer Zeit blinken die alle unterschiedlich ..
    Wen wundet das? Resonatoren dieser Bauart haben nicht unüblicherweise laut technischen Daten eine Frequenz-Toleranz ±0.5% !
    Geändert von oberallgeier (09.08.2016 um 10:08 Uhr) Grund: Hinweis auf Frequenztoleranz
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. Genfer Autosalon 2016 - "Knutschkugel" Isetta kommt wieder - als Elektroauto
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 02.03.2016, 13:30
  2. Antworten: 7
    Letzter Beitrag: 10.07.2013, 21:54
  3. Stoppuhr mit "Sollbruchstellenauslöser"
    Von studio im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 11.07.2012, 11:19
  4. Versteckte Ordner wieder "unversteckt" machen
    Von Sebas im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 20.09.2011, 16:19
  5. Sendung "Fast vergessen" mit meinem Bruder im TV
    Von 021aet04 im Forum Offtopic und Community Tratsch
    Antworten: 0
    Letzter Beitrag: 16.12.2010, 12:37

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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