Forum: Mikrocontroller und Digitale Elektronik LPC11C24 Timer


von Andi S. (sn0000py)


Lesenswert?

Hallo da ich gerade versuche oneWire am LPC11C24 zu aktivieren, wollte 
ich mal fragen ob mal einer schauen kann ob zumindest der Timer mal 
richtig initialisiert wird.

Habe mal ein paar versuche gemacht, aber keine hat funktioniert, und ich 
tue mir nun schwer ob der Presacle korrekt eingestellt ist.

Er sollte jede µs einmal zählen

das war der original Code
1
//#define PRESCALE  ((SystemCoreClock/LPC_SYSCTL->SYSAHBCLKDIV)/(1000000ul * 2)){/code]
2
3
ich hätte es dann noch mit 
4
[code]
5
#define PRESCALE  (SystemCoreClock / 1000000ul)
6
// und
7
#define PRESCALE  (SystemCoreClock / (1000000ul * 4))
8
// und
9
#define PRESCALE  (12)
10
// und
11
#define PRESCALE  (48)
 getestet

Es ist ein 12 MHz Quarz angeschlossen.
LPC_SYSCTL->SYSAHBCLKDIV ist 1
LPC_SYSCTL->MAINCLKSEL ist 3
Der SystemCoreClock ist 48000000 .. warum auch immer der den 4-fachen 
Wert vom Quartz hat?

ich müsste nun mal sicherstellen das der Timer wirklich korrekt 
funktioniert, damit ich die restlichen Fehler dann noch schauen kann ...

der Timer Init ist dann noch
1
void ow_init() {
2
  /* Enable AHB clock to the GPIO domain. */
3
  LPC_SYSCTL->SYSAHBCLKCTRL |= (1 << 6);
4
5
  /* Enable AHB clock to Timer16B0. */
6
  LPC_SYSCTL->SYSAHBCLKCTRL |= TIMER_EN;
7
8
  LPC_TMR->PR = PRESCALE;
9
  LPC_TMR->TCR = 0x02; // timer stopped and reset
10
11
  /* Enable the TIMER0 Interrupt */
12
  NVIC_EnableIRQ(TIMER_IRQn);
13
14
}

von Christian K. (christian_rx7) Benutzerseite


Lesenswert?

Wenn du den LPCopen Beispielcode verwendest ist die PLL aktiviert und 
daher hast du die 48MHz. Steht in der board.c soweit ich mich erinnern 
kann.

Christian_RX7

von Jim M. (turboj)


Lesenswert?

Andi S. schrieb:
> LPC_SYSCTL->MAINCLKSEL ist 3

Ist das nicht der Wert für die PLL? Dann muss man deren Faktor natürlich 
mit einberechnen.

von Andi S. (sn0000py)


Lesenswert?

Ja stimmt mit den 48MHz stimmt das nun und konnte nun weitertesten - nun 
funktioniert alles danke :D

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.