Digispark mini (attiny85) ohne Quarz mit softclock, RTC und DCF

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • hero schrieb:

      Geht bei mir und sollte die HW auch hergeben.
      probier mal mit attiny85 :D

      Dekaman schrieb:

      Load-Befehl meiden
      ja, das ist kein Problem, ich war nur überrascht. Aufgrund der Fehlermeldung war mir eine Lösung schnell klar.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Timer1 beim Attiny85 ist ein 8bit'er.
      Bis jetzt hatten die Bascomprogramme Pobleme mit dem ansprechen
      und übersetzen im Compiler.Lt.Bascom 2.0.8.1 sollen die Probleme
      beseitigt wurden sein. Wurde auch schon i 2.0.8.0 behauptet.Ein
      ansprechen des Timer1 geht bis jetzt nur über direktes Anspechen der
      Register.
      Ich suche noch ein Beispiel von mir und stelle es dann hier ein.
    • ftelektro schrieb:

      Ein
      ansprechen des Timer1 geht bis jetzt nur über direktes Anspechen der
      Register.
      An das hab' ich nicht gedacht und einfach den timer1 so configuriert wie bai anderen AVRs. Es geht, meine Uhr läuft mit timer1 und den config-Zeilen

      BASCOM-Quellcode

      1. Dim Timer1reload As Byte : Timer1reload = 0
      2. Config timer1 = Timer , Prescale = 128
      3. Timer1 = Timer1reload
      4. On Ovf1 timer1_isr
      5. 'enable ovf1
      6. Start timer1
      7. Enable Interrupts
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Aber @hero, wenn ich dich grad' dran hab', wie müsste ich es mit ctc machen, wenn ich:
      mit derselben isr zunächst den timer überlaufen lassen will und die Überläufe zählen, um eine fixe Zeitspanne in Anzahl Takte umzurechnen. Wähle ich dann für compare den Wert 0 oder 255? Oder kann ich für verschiedene Modi dieselbe isr verwenden und halt den entsprechenden Modus enablen?
      ich darf nochmal nachfragen?
      Konkret, ich möchte die Timertakte für den Zeitraum einer Sekunde zählen, um dann einen 1msec interrupt zu bilden. Die Systemtaktrate ist eben etwas ungenau angegeben, dashalb das Gedöns.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Einmal möchte ich die Taktanzahl für 1 Sekunde zählen, dazu summiere ich die Überläufe auf + timer-Wert, wenn der timer nach 1 Sekunde gestoppt wird. Diese Zahl schwankt ja mit dem Systemtakt. Aber durch den fixen und genauen 1 Sekundenabschnitt kann ich jetzt den vorhandenen Systemtakt errechnen und jetzt einen interrupt mit genau 1 msec basteln, den ich für die softclock brauche.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Timer1 Attiny85

      BASCOM-Quellcode

      1. $regfile = "attiny85.dat"
      2. $crystal = 1000000
      3. $hwstack = 32
      4. $swstack = 16
      5. $framesize = 40
      6. Config Portb = Output
      7. Dim B As Word
      8. Dim D As Word
      9. Pwm0a = Portb.3
      10. A Alias Pwm0a
      11. C Alias Ocr1b
      12. Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
      13. Gtccr = Gtccr Or &B01100000 'set PWM1B & OC1B (PB4) clear TCNT1 on OCR1C match
      14. Ocr1b = 0 'initialise OCR1B -> low, no pulses at OC1B
      15. Tccr1 = Tccr1 Or &B00000100 'Einschalten TIMER1 - prescaler = 4
      16. Do
      17. A = Rnd(255)
      18. B = Rnd(1000)
      19. B = B + 100
      20. Waitms B
      21. A = Rnd(255)
      22. B = Rnd(1000)
      23. B = B + 100
      24. Waitms B
      25. C = Rnd(255)
      26. D = Rnd(500)
      27. D = D + 35
      28. Waitms D
      29. C = Rnd(255)
      30. D = Rnd(300)
      31. D = D + 35
      32. Waitms D
      33. C = Rnd(255)
      34. D = Rnd(400)
      35. D = D + 35
      36. Waitms D
      37. Loop
      38. End
      Alles anzeigen
    • @hero zwischen 2 Sekundenflanken der Rtc. Einfach, wieviele Timertakte passen in diese 1 Sekunde. Dann die gezählten Takte /1000, dann hab' ich den compare-Wert für 1 msec (oder eben load timer...)

      @ftelektro das kannst du jetzt offensichtlich einfacher mit bascom-Befehlen machen, zumindest hat das bei mir funktioniert.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • hero schrieb:

      Die scheinen das Compare1a im .dat File vergessen zu haben, deswegen wird es auch nicht gehighlightet.
      Aber sollte trotzdem gehen.
      Im Config werden jedenfalls die richtigen Bits gesetzt, nur der Load Befehl passt nicht auf, welche HW er anspricht.
      Ist diese .dat nicht sowas wie eine Übersetzung von Text zu Zahlen, zB das 'mit PinB' das Register &h03 (weiß nicht, ob die Nummer jetzt stimmt) gemeint ist. Und wenn jetzt compare1a nicht enthalten ist, wie kann dann das Register gesetzt werden?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------