LPC15 SCT problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC15 SCT problem

973 Views
gregwilson-lind
Contributor II

I'm trying to get the SCT running on an LPC1519 based board. I've got the SCT running propery on another board based on the LPC1517 and it is working just fine. I haven't been able to get anything working with the SCT on the LPC1519 based board.

I went back to the AN11538 SCT Cookbook to make sure that I understood what is happening and I can't get the first two demos to work at all. Here is the code that I'm using for the first demo, a 10ms interrupt:

void SCT_Init(void)
{
   LPC_SCT0->CONFIG = (1 << 0) | (1 << 17);                      // unified 32-bit timer, auto limit
   LPC_SCT0->MATCHREL[0].U = SystemCoreClock/100;    // match 0 @ 100 Hz = 10 msec
   LPC_SCT0->EVENT[0].STATE = 0xFFFFFFFF;                   // event 0 happens in all states
   LPC_SCT0->EVENT[0].CTRL = (1 << 12);                         // match 0 condition only
   LPC_SCT0->EVEN = (1 << 0);                                           // event 0 generates an interrupt
   NVIC_EnableIRQ(SCT0_IRQn);                                           // enable SCTimer/PWM interrupt
   LPC_SCT0->CTRL_U &= ~(1 << 2);                                     // unhalt by clearing bit 2 of the CTRL
}

And the interrupt handler:

void SCT0_IRQHandler(void)
{
   LPC_SCT0->EVFLAG = SCT_EVT_0; // clear Event 0 irq
   LPC_SCT0->EVFLAG = SCT_EVT_1; // clear Event 1 irq
}

When I put a breakpoint in the interrupt handler it never gets triggered. I know that there is something missing, but at this point I can't see it.

I've also tried the 2nd example to blink a LED to try to toggle an output line (PIO2_3) and I don't get anything for that either:

{
   LPC_SCT0->CONFIG |= 1; // unified timer
   LPC_SCT0->MATCHREL[0].U = (SystemCoreClock/10)-1; // match 0 @ 10 Hz = 100 msec
   LPC_SCT0->EVENT[0].STATE = (1 << 0); // event 0 only happens in state 0
   LPC_SCT0->EVENT[0].CTRL = (0 << 0) | // related to match 0
         (1 << 12) | // COMBMODE[13:12] = match condition only
         (1 << 14) | // STATELD[14] = STATEV is loaded into state
         (1 << 15); // STATEV[15] = 1 (new state is 1)
   LPC_SCT0->EVENT[1].STATE = (1 << 1); // event 1 only happens in state 1
   LPC_SCT0->EVENT[1].CTRL = (0 << 0) | // related to match 0
         (1 << 12) | // COMBMODE[13:12] = match condition only
         (1 << 14) | // STATELD[14] = STATEV is loaded into state
         (0 << 15); // STATEV[15] = 0 (new state is 0)
   LPC_SCT0->OUT[0].SET = (1 << 0); // event 0 will set SCT_OUT0
   LPC_SCT0->OUT[0].CLR = (1 << 1); // event 1 will clear SCT_OUT0
   LPC_SCT0->LIMIT_L = 0x0003; // events 0 and 1 are used as counter limit
   LPC_SCT0->CTRL_L &= ~(1 << 2); // unhalt by clearing bit 2 of CTRL register

   Chip_SWM_MovablePinAssign(SWM_SCT0_OUT0_O, 0x43);
}

I'm using the MCUXpresso IDE v10.0.0. Both examples were copied out of the AN11538 App Note and only modified to changed the LPC_SCT-> pointers to LPC_SCT0-> for the LPC1519 processor.  For the Blinky example I added the call to assign the SCT0_OUT0_O output to PIO2_3.

Any help anyone could give me would be greatly appreciated.

Tags (1)
0 Kudos
2 Replies

630 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Greg Wilson-Lindberg,

Thank you for your interest in NXP Semiconductor products and 
the opportunity to serve you.
According to your statement, I got that you had already ported the demo to LPC1517, in theory, it would be suit for the LPC1519 too.
The result seems to be so weird.
I'd highly recommend you to refer to demo in the ~\AN11538 SCTimer\code examples\LPC15xx\Keil, in these demos, the pointer LPC_SCT0->xx is used, so some modification work is unnecessary.
Hope it helps.
Have a great day,

TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

630 Views
gregwilson-lind
Contributor II

Hi Jeremy,

I did lookup the source code in the zip file and have finally gotten the PWM working.

Thanks for the suggestion.

Regards,

Greg

0 Kudos