Xmega Konfiguration Timer Type 1 / Type 2

Gast #3167459
Lesenswert?
• ▲
▼
Hallo,

ich benutze einen XMEGA 2586A3U und habe eine Frage zur Konfiguration 
eines Timers.

Ich konfiguriere in meinenm Projekt den Timer TCD0 im Normal Mode. Ich 
habe jetzt per Zufall festgestellt, dass bei der Initialisierung 
gleichzeitig der Timer/Counter TCD2 initialisiert wird.

Da ich beim Debuggen etwas Probleme mit der Stabilität habe (plötzlicher 
Reset) kann es vielleicht damit zusammenhängen? TCD2 erzeugt 
Interuptflags und ich dafür keine ISR definiert habe.
Zur Klarheit möchte ich noch erwähnen, dass ich ASF benutze... (Version 
3.5.1)

Ich habe mich versucht über die TC Type2 Geschichte schlau zu machen. 
Split Mode ist laut IO-View nicht aktiviert. Ansonsten habe ich keine 
Gründe für eine Initialisierung vonTCD2 gefunden...

Hat jemand da schon Erfahrung mit?


Gruß

Ruud
Gast #3167500
Lesenswert?
• ▲
▼
Hi
die Konfiguration zu Fuß habe ich noch nicht probiert, habe mit die 
Funktionen angesehen und kann eigentlcih nichts ungewöhnliches 
feststellen, hier ist mal mein Initialisierungscode:
1
#define LCDComTC        &TCD0
2
#define LCDComTC_INTLvl        TC_INT_LVL_LO
3
#define LCDComTC_Prescaler      8
4

5

6

7
void lcd_com_timer_init(void){
8
  //config Timer
9
  irqflags_t flags;
10
  flags = cpu_irq_save();
11

12
  tc_enable(LCDComTC);
13
  tc_set_overflow_interrupt_callback(LCDComTC, LCDComTC_tcd0_ovf_callback);
14
  tc_set_wgm(LCDComTC, TC_WG_NORMAL);              //Timer Mode: Normal
15
  tc_write_period(LCDComTC, F_CPU/LCDComTC_Prescaler/1000);    //Überlauf Wert bestimmen und speichern (aktiv alle 1ms)
16
  tc_set_overflow_interrupt_level(LCDComTC, LCDComTC_INTLvl);
17
  tc_write_clock_source(LCDComTC, TC_CLKSEL_DIV8_gc);
18
  
19
  cpu_irq_restore(flags);
20
//   cpu_irq_enable();
21
}

Im Anhang ist noch die Ansicht der Register nach der Initialisierung.

Siehst du etwas ungewöhnliches?

Gruß Ruud
Angehängte Dateien:
Gast #3167971
Lesenswert?
• ▲
▼
Gibts ja Beispiele zur ASF... was ist mit denen?
Wie gesagt.. im Notfall einfach mal die Register so setzen... aber kann 
mir hier eher ein debugger Fehler vorstellen...

Was issn mit TC_INT_LVL_LO... gibts das? Sieht mir komisch aus...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.