Witam. Tak jak w temacie posiadam układ LPC1115 który w zasadzie nie różni się od LPC1114.
Zatrzymałem się na problemie uruchomienia timera16.
W moim kodzie po 1s. chcę wyłączyć diodę na porcie 2.1
Niestety dioda nie gaśnie, a nawet wydaje mi się że mikrokontroler nie robi przerwania. Poniżej przedstawiam mój kod i z góry dziękuję za pomoc
Zatrzymałem się na problemie uruchomienia timera16.
W moim kodzie po 1s. chcę wyłączyć diodę na porcie 2.1
Niestety dioda nie gaśnie, a nawet wydaje mi się że mikrokontroler nie robi przerwania. Poniżej przedstawiam mój kod i z góry dziękuję za pomoc
#ifdef __USE_CMSIS
#include "LPC11xx.h"
#endif
void TIMER_16(int CZAS)
{
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7); //WLACZENIE ZEGARA NA TIMER_0
LPC_TMR16B0->IR = (1<<0); //RESETOWANIE PRZERWAN
LPC_TMR16B0->TCR = (1<<1); //RESETOWANIE TIMERA
LPC_TMR16B0->MCR = (1<<0)|(1<<1); //PRZERWANIE i RESETOWANIE TIMERA OD MR0
LPC_TMR16B0->MR0 = CZAS; //ZLICZENIE IMPULSOW (U mnie CLK = 12MHz)
LPC_TMR16B0->PR = 99; //PRESKALER (100-1)
LPC_TMR16B0->TCR = (1<<0); //WLACZENIE TIMERA
NVIC_EnableIRQ(TIMER_16_0_IRQn); //USTAWIENIE PRZERWANIA OD TIMER_16_0
}
void TIMER16_0_IRQHandler(void)
{
LPC_GPIO2->DATA &= ~(1<<1);
LPC_TMR16B0->IR |= (1<<0);
}
int main(void)
{
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6); //CLK DLA GPIO
LPC_GPIO2 -> DIR = 0x000F;
LPC_GPIO2 -> DATA |= 0x000F;
TIMER_16(12000);
while (1)
{
}
return 0;
}