на лпц1768 всё что мне нужно работает на ура
на лпц1343 не могу ни одно прерывание запустить
вот тестовая програмка
таймер работает, шим выдает а прерывания ни таймер не ацп не выдает
вроде все включаю так же какина лпц1768, там все работает а тут нет
помогите где я чо не включил или где косяк
CODE
#include "LPC13xx.h" /* LPC13xx definitions */
/* Main Program */
volatile int ad;
int main (void) {
LPC_GPIO0->DIR = 0xFF;
LPC_GPIO2->DIR = 0xFF;
LPC_GPIO3->DIR = 0xFF;
LPC_GPIO1->DIR = 0x00;
LPC_IOCON->PIO0_8 = (1<<1)|(1<<3)|(1<<4);
LPC_IOCON->PIO1_10 = (1<<0)|(0<<7);
//NVIC->ISER = 1;
NVIC->ISER[1] = (1<<9)|(1<<10)|(1<<11)|(1<<14)|(1<<17); // T16(0),T16(1), T32(0),UART,ADC
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7)|(1<<8)|(1<<9)|(1<<12)|(1<<13)|(1<<16); // t16(0), t16(1),t32(0), uart, adc, iocon
LPC_SYSCON->PDRUNCFG |= (0<<4); //ADC ON
LPC_UART->FDR = 0x10; // disable fractional baudrate
LPC_UART->LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
LPC_UART->DLM = 0x0;
LPC_UART->DLL = 24;
LPC_UART->LCR = 0x03; /* DLAB = 0 */
LPC_UART->FCR = 0x07; /* Enable and reset TX and RX FIFO. */
LPC_TMR16B0->TCR =1;
LPC_TMR16B0->PR = 50;
LPC_TMR16B0->MCR = (1<<10); // mr3r=1
LPC_TMR16B0->MR3 =2000;
LPC_TMR16B0->MR0 = 1000;
LPC_TMR16B0->PWMC = (1<<0);
LPC_TMR16B0->MR1 = 20;
LPC_TMR16B0->IR = 1<<1;
LPC_ADC->CR = (1<<6)|(30<<8)|(1<<16);
LPC_ADC->INTEN = (1<<8);
while (1)
{
}
return 0; // Should never reach here
}
void TIMER16_0_IRQHandler(void)
{
LPC_GPIO3->DATA = 0;
LPC_GPIO3->DATA = 255;
}
void TIMER16_1_IRQHandler(void)
{
}
void TIMER32_0_IRQHandler(void)
{
}
void TIMER32_1_IRQHandler(void)
{
}
void SSP_IRQHandler(void)
{
}
void UART_IRQHandler(void)
{
}
void USB_IRQHandler(void)
{
}
void USB_FIQHandler(void)
{
}
//void ADC_IRQHandler(void)
void ADC_IRQHandler (void)
{
LPC_GPIO3->DATA = 0;
LPC_GPIO3->DATA = 255;
ad = LPC_ADC->GDR;
ad>>6;
LPC_TMR16B0->MR0 = ad;
Сообщение отредактировал IgorKossak - Mar 27 2011, 19:31
Причина редактирования: Оформление длинного кода тэгами [codebox]