中断-timer0

使用timer0中断,将LED灯闪烁


Init.c

/*
 * init.c: 进行一些初始化
 */ 

#include "s3c24xx.h"
 
void disable_watch_dog(void);
void clock_init(void);
void memsetup(void);
void copy_steppingstone_to_sdram(void);
void init_led(void);
void timer0_init(void);
void init_irq(void);
void delay(int n)
{
	int i; 
	for(i=0;i

Interrupt.c

#include "s3c24xx.h"
int flag=0;
void Timer0_Handle(void)
{
    /*
     * 每次中断令4个LED改变状态
     */
     unsigned long oft = INTOFFSET;//读取中断偏移量


//成功的
if(oft==10)//根据偏移量,判断是不是timer0中断
{
if(flag==0)
{
	GPFDAT &= ~(1<<4|1<<5|1<<6);//亮灯
	flag=1;

}
else
{
	GPFDAT |= (1<<4|1<<5|1<<6);//关灯
	flag=0;
}

SRCPND=SRCPND;
INTPND=INTPND;
//SRCPND &= ~(1<<10);
//INTPND &= ~(1<<10);
//SRCPND = 0;
//INTPND = 0;
}

	
}


你可能感兴趣的:(Linux,嵌入式软件开发,c/c++)