Timer xmega Prescale ignoriert: Bug oder nicht...?

    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!

    • Timer xmega Prescale ignoriert: Bug oder nicht...?

      Hallo,
      in den letzten drei Stunden habe ich mich mit diesem Problem auseinandergesetzt. Ist das ein Bug oder soll das so?
      Wenn ich Generate_bug auf 1 setze, dann habe ich an Pin E2 eine Frequenz von 678 Hz. Wenn ich generate_bug auf 0 setze, dann habe ich eine Frequenz von 84.7 Hz (so wie ich es erwarten würde). Ein start / stopp TCD0 setzt also den Prescaler auf 1 zurück. Hätte ich jetzt nicht erwartet?


      Quellcode

      1. $regfile = "xm16A4def.dat"
      2. $crystal = 32000000
      3. $hwstack = 512
      4. $swstack = 512
      5. $framesize = 512
      6. $lib "xmega.lib"
      7. Config Osc = Disabled , 32mhzosc = Enabled
      8. Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
      9. Config Tcd0 = Normal , Prescale = 8
      10. Tcd0_per = 24000
      11. On Tcd0_ovf Tcd0_isr
      12. Enable Tcd0_ovf , lo
      13. Config Priority = Static , Vector = Application , Lo = Enabled , med = enabled 'Enable Lo Level Interrupts
      14. Enable Interrupts
      15. Config Porte.2 = Output
      16. dim generate_bug as bit
      17. Generate_bug = 1
      18. if generate_bug = 1 then
      19. stop tcd0
      20. start tcd0
      21. end if
      22. Do
      23. nop
      24. Loop
      25. End
      26. Tcd0_isr:
      27. toggle Porte.2
      28. return
      Alles anzeigen