Skocz do zawartości

[LPC1114] uruchomienie TIMERA 16B - problem (rozwiązany)


michalg0000

Pomocna odpowiedź

Cześć, jestem nowy, ale mam już pewne doświadczenie z AVR-ami. Teraz chce się nauczyć ARM-ów. Zacząłem od LPC1114.

Mam problem z uruchomieniem układu sterującego diodą za pomocą TIMER-a 16B0. Nie wiem czy problem leży w inicjalizacji timera czy w obsłudze przerwania... Poniżej jest kod. Będę wdzięczny za pomoc i ewentualne sugestie.

#include "LPC11xx.h"

void TIMER16_0_IRQHandler(void)
{
static int bit = 0;

if (bit == 1)
{
	LPC_GPIO0->DATA |= (1<<6); // set pin 6
    bit = 0;
}
else
{
	LPC_GPIO0->DATA &= ~(1<<6); // clear pin 6
    bit = 1;
}
    LPC_TMR16B0->IR = 0x1f; // clear interrupt flag
}

int main(void)
{
LPC_GPIO0->DIR |= (1<<6);

LPC_SYSCON->SYSAHBCLKCTRL |= 0x80; // CT16B0 clock enable
LPC_TMR16B0->TCR = 2; // timer reset
LPC_TMR16B0->MCR = 3; // reset and interrupt on MR0
LPC_TMR16B0->MR0 = 48000; // 1 ms
LPC_TMR16B0->PR = 99; // prescaler 100
LPC_TMR16B0->TCR = 1; // timer enable
NVIC_EnableIRQ(TIMER_16_0_IRQn); // interrupt enable

while (1)
{

}
return 0;
}

Pozdrawiam,
Michał

EDIT....

ok działa. Nie wiem co było nie tak... Napisałem to od nowa i działa. Poniżej poprawny kod

#include "LPC11xx.h"

void TIMER16_0_IRQHandler(void)
{
static int bit = 0;

if (bit == 1)
{
	LPC_GPIO0->DATA |= (1<<6); // set pin 6
    bit = 0;
}
else
{
	LPC_GPIO0->DATA &= ~(1<<6); // clear pin 6
    bit = 1;
}
    LPC_TMR16B0->IR = 0x1f; // clear interrupt flag
}

int main(void)
{
LPC_GPIO0->DIR |= (1<<6);

LPC_SYSCON->SYSAHBCLKCTRL |= 0x80; // CT16B0 clock enable
LPC_TMR16B0->TCR = 2; // timer reset
LPC_TMR16B0->MCR = 3; // reset and interrupt on MR0
LPC_TMR16B0->MR0 = 48000; // 1 ms
LPC_TMR16B0->PR = 99; // prescaler 100
LPC_TMR16B0->TCR = 1; // timer enable
NVIC_EnableIRQ(TIMER_16_0_IRQn); // interrupt enable

while (1)
{

}
return 0;
}
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.