Добавил:
lelik
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные МПр / код / lab5 / Lab - timer / src / main
.c/***************************************
*
* LETI traning 2011
*
***************************************/
#include "LPC17xx.h"
#include "leds.h"
#include "timer.h"
#include "GLCD.h"
#include "adc.h"
#define EINT0 0x00000001
#define EINT0_EDGE 0x00000001
void sleep(int);
int led = 0; //current led
char flag=1;
unsigned long int EINTInit( void )
{
LPC_PINCON->PINSEL4=0x00100000;
LPC_GPIOINT->IO2IntEnR= 0x00000400;
LPC_SC->EXTMODE = EINT0_EDGE;
LPC_SC->EXTPOLAR = 0;
NVIC_EnableIRQ(EINT0_IRQn);
return(1);
}
//------------
int main(void) {
SystemInit();
LED_init();
timer0_init();
GLCD_Init ();
adc_init ();
EINTInit(); //инициализация внешних прерываний
//настр. таймера
LPC_TIM0->MCR=0x03;
LPC_TIM0->MR0=7000000;
NVIC_EnableIRQ((IRQn_Type) TIMER0_IRQn);
LPC_TIM0->TCR=1;
LPC_TIM0->IR=1; // обработка кнопки
//при нажатии кнопки прерывания INT0 происходит преднамеренное прерывание выполнения программы
//
if (flag)
{
while(1) {
LED_Out(0); //all leds off
LED_On(led); //one led on
led++;
if(led >= LED_NUM)
led = 0;
sleep(25000000); //delay
LPC_ADC->ADCR |=(1<<24);
sleep(250000); //delay
}
}
}
//--
void sleep (int ticks) {
int i;
for(i=0; i<ticks; i++);
}
Соседние файлы в папке src