-         
Ergebnis 1 bis 3 von 3

Thema: Bascom: Xmega Timer -> Prescaler im Betrieb ändern?

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    39
    Beiträge
    1.271

    Frage Bascom: Xmega Timer -> Prescaler im Betrieb ändern?

    Anzeige

    Hi,
    nach langer Pause benutze ich mal wieder Bascom für meinen xmega32a4. Ich möchte per Code den Prescaler eines Timers umstellen, ist das möglich? Ich finde den passenden Registernamen dafür nicht . Vielleicht kann mir jemand helfen. Ziel ist es ein spezielles PWM "Doppelpuls" Signal zu erzeugen (siehe Oszi Foto)

    Beispiel:
    Funktionierender Code (in der isr des Timers)
    Code:
    Select Case Toggler   
    Case 0 :
          Config Tcd0 = Normal , Prescale = 1
          Tcd0_per = High_count
    Case 1 :
          Config Tcd0 = Normal , Prescale = 1
          Tcd0_per = Low_count
    Case 2:
          Config Tcd0 = Normal , Prescale = 1
           Tcd0_per = High_count
    Case 3 :
          Config Tcd0 = Normal , Prescale = 8
          Tcd0_per = Pause_count
    End Select
    Ich möchte nun aber den Wert für den Prescale per Variable ändern können. Folgendes funktioniert aber NICHT:
    Code:
    [...]
    dim High_prescale as Word
    dim low_prescale as Word
    dim pause_prescale as Word
    [...]
    Select Case Toggler   
    Case 0 :
          Config Tcd0 = Normal , Prescale = High_prescale
          Tcd0_per = High_count
    Case 1 :
          Config Tcd0 = Normal , Prescale = Low_prescale
          Tcd0_per = Low_count
    Case 2:
          Config Tcd0 = Normal , Prescale = High_prescale
           Tcd0_per = High_count
    Case 3 :
          Config Tcd0 = Normal , Prescale = Pause_prescale
          Tcd0_per = Pause_count
    End Select
    Gibt es ein Register, in welches ich den Prescale Wert direkt schreiben kann? Danke für eure Tipps!!

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_20191109_230657.jpg
Hits:	7
Größe:	64,8 KB
ID:	34460
    Viele Grüße, William
    -> http://william.thielicke.org/

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    39
    Beiträge
    1.271
    Die Lösung hat vielleicht etwas hiermit zu tun, aber ich finde keine Infos zu den entsprechenden Registern in Bascom
    Klicke auf die Grafik für eine größere Ansicht

Name:	Screenshot_20191110_090120_com.google.android.apps.docs.jpg
Hits:	6
Größe:	82,5 KB
ID:	34462

    - - - Aktualisiert - - -

    Super, wenn vor dem Bäcker eine lange Schlange ist, dann kann man noch mehr googeln... Das hier wird hoffentlich die Lösung sein:
    Code:
    '----------COUNTER/TIMER----Subroutines-----------------------------------------
    'TC0_ConfigClockSource
    'Configures clock source for the Timer/Counter 0
    'Clockselection [0 = OFF, 1 = DIV1, 2 = DIV2, 3 = DIV4, 4= DIV8, 5 = DIV64, 6 = DIV256, 7 = DIV1024, 8 = EventChannel 0 ....15 = Event Channel 7
    Sub Tc0_configclocksource(byval Port As String , Byval Clockselection As Byte)
     Select Case Port
      Case "C":                                                 'Port C
        Select Case Clockselection
         Case 0 : Tcc0_ctrla = &B0000_0000                      'OFF
         Case 1 : Tcc0_ctrla = &B0000_0001                      'DIV1
         Case 2 : Tcc0_ctrla = &B0000_0010
         Case 3 : Tcc0_ctrla = &B0000_0011
         Case 4 : Tcc0_ctrla = &B0000_0100
         Case 5 : Tcc0_ctrla = &B0000_0101
         Case 6 : Tcc0_ctrla = &B0000_0110
         Case 7 : Tcc0_ctrla = &B0000_0111                      'DIV1024
         Case 8 : Tcc0_ctrla = &B0000_1000                      'Event Channel 0
         Case 9 : Tcc0_ctrla = &B0000_1001
         Case 10 : Tcc0_ctrla = &B0000_1010
    Viele Grüße, William
    -> http://william.thielicke.org/

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.552
    Blog-Einträge
    127
    Zitat Zitat von Willa Beitrag anzeigen
    ...
    Super, wenn vor dem Bäcker eine lange Schlange ist, dann kann man noch mehr googeln... Das hier wird hoffentlich die Lösung sein: ...
    Dürfte richtig sein.
    Es gibt das XMEGA A manual: http://ww1.microchip.com/downloads/e...oc/doc8077.pdf
    Im Kapitel 14.12.1 CTRLA – Control register A werden die CLKSEL Bits beschrieben.

    Wie man den richtigen Namen in Bascom findet steht in der Bascom Hilfe (zumindest in meiner alten Demo Version 2.0.7.9) Kapitel "ATXMEGA" im FAQ. Im Prinzip soll man die entsprechende Bascom .dat File zum µC finden und dort drin nachsehen.

    Gruß
    Searcher

    (PS Guten Appetit )
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. Atmega168A Prescaler ändern und neu flashen
    Von wedemännchen im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 01.11.2016, 15:52
  2. XMega mit periodischem Timer Interrupt
    Von Superhirn im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 19.02.2012, 18:35
  3. ATTINY Spannung wärend Betrieb ändern
    Von .:markus:. im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 04.08.2010, 22:32
  4. XMega Clock,PLL, Prescaler einstellen in Bascom Demo
    Von chr-mt im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 20.05.2010, 21:16
  5. Xmega - Timer configuration
    Von Duesentrieb7 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 09.12.2009, 22:56

Berechtigungen

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