分享
 
 
 

Timer_ISR_Init()

王朝百科·作者佚名  2010-09-12
窄屏简体版  字體: |||超大  

Timer_ISR_Init()

altera公司nios II 处理器的HAL系统里 初始化中断

看下面的例子:

#include <stdio.h>

#include <sys/unistd.h>

#include <io.h>

#include <string.h>

#include "system.h"

#include "altera_avalon_pio_regs.h"

#include "altera_avalon_timer_regs.h"

#include "alt_types.h"

#include "sys/alt_irq.h"

#define TRUE 1

#define FALSE 0

/***********************************************/

static void Timer_ISR_Init(void); //初始化中断

/***********************************************/

int main(void)

{

printf("

Exp4 - Keyboard & 7Seg LED!

");

//设置Timer中断

Timer_ISR_Init();

while(1)

{

usleep(10000);

}

return 0;

}

/***********************************************/

//Timer

alt_u8 DispSegTab[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40}; //0~F

alt_u8 PrintDispTab[]={ '0', '1', '2', '3', '4', '5', '6', '7',

'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; //0~F

alt_u8 KeyTab[]={ 0x4e,0x67,0x47,0x27,

0x6b,0x4b,0x2b,0x6d,

0x4d,0x2d,0x07,0x0b,

0x0d,0x0e,0x6e,0x2e };

alt_u8 KB_Scan_Tab[8] = {0x0e, 0xff, 0x0d, 0xff, 0x0b, 0xff, 0x07, 0xff};

alt_u8 DispBuff[8] = {16,16,16,16,16,16,16,16};

alt_u8 KeyValue;

alt_u8 DisplayNum, PressedKeyNum = 0, KeyPressedFlag;

static void Timer_Irq_Handler(void *context, alt_u32 id)

{

alt_u8 i,j;

DisplayNum = (DisplayNum + 1) % 8;

//输出显示扫描信号

IOWR_ALTERA_AVALON_PIO_DATA(SEG_SEL_BASE, DisplayNum);

IOWR_ALTERA_AVALON_PIO_DATA(SEG_A_DP_BASE, DispSegTab[DispBuff[DisplayNum]]);

//判断有无按键按下

IOWR_ALTERA_AVALON_PIO_DATA(KB_COL_BASE, KB_Scan_Tab[DisplayNum]);

KeyValue = IORD_ALTERA_AVALON_PIO_DATA(KB_ROW_BASE) & 0x0f;

if(KeyValue != 0x0f && !KeyPressedFlag)

{

KeyPressedFlag = TRUE;

PressedKeyNum = DisplayNum;

//转换键值

KeyValue |= DisplayNum << 4;

for(i=0; i<16; i++)

{

if(KeyValue == KeyTab[i])

break;

}

if(i < 16)

{

for(j=0; j<7; j++)

DispBuff[j] = DispBuff[j+1];

DispBuff[j] = i;

printf("You pressed '%c' key!

", PrintDispTab[i]);

}

}

else if(PressedKeyNum == DisplayNum && KeyValue == 0x0f && KeyPressedFlag)

KeyPressedFlag = FALSE;

//清除Timer中断标志寄存器

IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0);

}

/************************************************/

static void Timer_ISR_Init(void) //初始化中断

{

//清除Timer中断标志寄存器

IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0);

//注册Timer中断

alt_irq_register(TIMER_IRQ, NULL, Timer_Irq_Handler);

//允许Timer中断

IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE, 0x01);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有