📄 main.c.bak
字号:
/* $Id: //depot/software/SDK2/Triscend/a7hal/examples/hello/main.c#1 $ *//* ********************************************************** * main.c * Copyright(C) 2001-2002 Triscend Corporation. All Rights Reserved. * This file is licensed under the terms of Triscend SDK License Agreement. ********************************************************** */#include <a7hal.h>#include <stdio.h>#include <stdlib.h>#include "main.h"#include "keyboard.h"#define keyctrl *( ( unsigned char * ) keyCtrl )#define keystat *( ( unsigned char * ) keyState )static unsigned char keyvaluetable[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};//----------for keypad----------volatile char keypressed,keyreleased,keyvalid,key,keyout;/* * Timer0 Interrupt Handler */void Delay(int period);void timer0_ISR( unsigned long whichTimer ){ int i,j = 0; int halt; unsigned char pre = keystat; a7hal_timer_clearInt( A7HAL_ICU_TIMER0 ); a7hal_icu_intDisable( A7HAL_ICU_TIMER0 ); a7hal_icu_intDisable( A7HAL_ICU_CSL0 ); keyctrl = 1; for(i = 0; (i < 6) && (pre != keystat); i++, keyctrl <<= 1); if (i < 6) { pre = ~pre & 0x0f; if (keystat != 0xf) { while (pre > 1) { pre >>= 1; j++; } printf("%c ", keyvaluetable[i * 4 + j] ); Delay(1000); while (keystat != 0xf); } } keyctrl = 0xff; a7hal_icu_intEnable( A7HAL_ICU_CSL0 );}/* * IRQ0 Interrupt Handler -- keypad IRQ Capture */void irq0_ISR( unsigned long param ){ //printf("key irq generate!\n"); a7hal_icu_intDisable( A7HAL_ICU_CSL0 ); a7hal_icu_intEnable( A7HAL_ICU_TIMER0 ); a7hal_timer_start( 5000, 0, A7HAL_DIV_256 | A7HAL_PERIODIC );}int main( ){ //char ch; char *src; a7hal_uart_init (); printf( "Uart Init Finished .\n" ); /* Connect an ISR for the FIQ */ a7hal_icu_intConnect( timer0_ISR, A7HAL_INT_LVL_TIMER0, 0 ); /* Enable the timer interrupt and the FIQ */ a7hal_icu_intEnable( A7HAL_INT_LVL_TIMER0 ); /* Start the timer */ //a7hal_timer_start( 0x8000, 0, A7HAL_DIV_256 | A7HAL_PERIODIC ); //a7hal_timer_stop( 0 ); printf( "Timer Init Finished .\n" ); /* Enable the irq0 interrupt */ a7hal_icu_intConnect( irq0_ISR, A7HAL_ICU_CSL0, 0 ); a7hal_icu_intEnable( A7HAL_ICU_CSL0 ); printf( "Irq0 Init Finished .\n" ); //src = ( char * ) malloc( 128 ); //----------for keypad---------- keyctrl = 0xff; keypressed=0; keyvalid= 0; printf( "Press any key to continue ...\n" ); for ( ;; ) { //gets( src ); if(keyvalid==1) { keyvalid=0; //ch = keymap(keyout); //get key value //printf("%c",ch); //keyctrl = 0xff; //a7hal_icu_intEnable( A7HAL_ICU_CSL0 ); } }}void Delay(int period){ int i,j; long value; for(i=0;i<period;i++) { for(j=0;j<period;j++) { value = i*j; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -