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

Thema: Hilfe bei Zeitsteuerung

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    39
    Beiträge
    246
    Anzeige

    Praxistest und DIY Projekte
    Enable Interrupts aktiviert diese nur, ausgelöst werden kann er aber noch nicht, da der Timer noch nicht läuft. Eigentlich sollte der Timer IRQ erst ausgelöst werden, wenn er einen Überlauf verursacht. Dies geschieht scheinbar direkt am Anfang..

    Greifst du irgendwo im Programm noch auf den Timer zu?

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Nein. Das ist die einzige Stelle. Muss jede sub bzw. interrupt schleife eigentlich durch etwas beendet werden ?

    T.b.

    Test:

    Do

    Loop

    Timer_irq:
    .....
    Return

    Sprich die Test: endet ja nicht mit return oder end sub oder sowas. Aber das sollte doch auch keine Rolle spielen oder?

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    39
    Beiträge
    246
    Theoretisch müssten die auch beendet werden (ich glaube bei Bascom gibts nen END SUB oder sowas, weiß ich aber nicht genau).
    Ausmachen dürfte es jedoch, aufgrund der DO .. LOOP geschichte, nichts, weil er da ja eh nicht mehr raus kommt..

    Versuch mal:
    ...
    Automodus:
    Enable Timer1
    Timer1 = Timervorgabe
    Do
    ...

    Wenn er dann auch direkt reinspringt versuche es mal so:
    ...
    Automodus:
    Timer1 = Timervorgabe
    Enable Timer1
    Do
    ...

    Berichte mal was sich tut...

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Es passiert genau das gleiche wie vorher auch.

  5. #15
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Um 100% ausschließen zu können das der Rest von meinem code bzw. Programm damit etwas zu tun hat, habe ich nun nochmal ein ganz neues erstellt, nur mit nem Taster, nem Timer und einem Display.

    Es passiert wieder das gleiche wie vorher. Aber so kann ich jetzt den ganzen code posten, das ist dann vielleicht etwas leichter.

    Code:
    $regfile = "m16def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 20
    $framesize = 40
    $baud = 9600
    
    
    Config Portb.3 = Input
    
    Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5
    Config Lcd = 24 * 2
    Initlcd
    Cursor Off
    
    Dim Minuten As Byte
    Dim Sekunden As Byte
    Dim Zeit1 As Byte
    Dim Zeit2 As Byte
    
    
    Config Timer1 = Timer , Prescale = 256
    Const Timervorgabe = 3036
    On Timer1 Timer_irq
    Enable Interrupts
    
    
    Minuten = 0
    Sekunden = 0
    Zeit1 = 0
    Zeit2 = 0
    
    
    Do
    Locate 1 , 1
    Lcd Sekunden
    
    If Pinb.3 = 1 Then
       Enable Timer1
    End If
    
    Loop
    
    
    Timer_irq:
      Timer1 = Timervorgabe
      Incr Sekunden
      If Sekunden = 60 Then
        Incr Minuten
        Sekunden = 0
      End If
    Return
    So kann jetzt auch nochmal beschreiben was passiert. AVR wird angeschlossen, auf dem Display wird die 0 gezeigt. Ich drücke den Taster die 0 springt sofort zu einer 1 um, danach erhöht sich die Zahl im Sekundentakt.

    mfg Blamaster

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    39
    Beiträge
    246
    Wie sieht es denn aus, wenn du in der if Abfrage erst den Timer enablest und dann die Interrupts? Also oben dann das Enable Interrupts weg...

    Ehrlich gesagt habe ich jetzt auch keine Ideen mehr.

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.12.2006
    Alter
    59
    Beiträge
    117
    schreibe mal in deine pin abfrage anstatt " Enable Timer1 "
    "gosub Timer_irq".
    kenn mich zwar nicht so gut mit timern aus aber probiere mal aus.

    gruß mike

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Das hätte ja zum effekt das er genauso sofort in die interrupt schleife springt. Und wenn Enable Timer1 nicht gesetzt wird, zählt der timer auch nichts

  9. #19
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Zitat Zitat von zerush
    Wie sieht es denn aus, wenn du in der if Abfrage erst den Timer enablest und dann die Interrupts? Also oben dann das Enable Interrupts weg...

    Ehrlich gesagt habe ich jetzt auch keine Ideen mehr.
    Habs gerade versucht, wiedermal vergebens. Irgendwie hab ich das gefühl das dort etwas verdammt faul ist.

    Hat denn jamnd die Möglichkeit den code mal auf nem AVR laufen zu lassen ?

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests