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

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 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?


      Source Code

      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
      Display All