LPC11C24 Timer

#5784125
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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren