首页>>论坛 >>技术社区 >>飞思卡尔社区论坛 >>32位MCU
|
我要发帖  | 我要投票  | 我要回复  | 收藏
1

北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序

版主: 大学IV队  南京老练   
北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 

北京龙丘智能科技--应求--MCF52JM128完整键盘中断工程,KBI演示程序:

#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */

/*********************变量和函数定义****************************/
/***********************I/O初始化********************************/
void IO_INIT(void)
{
    PTGDD &= 0xF0;    /*set PTG0-3 to input*/
    PTGPE |= 0x0F;    /*enable PTG0-3 pull-up resistor*/
    PTFDD =0XFF;      //  LED
}

/************************KB初始化********************************/
void KB_INIT(void)
{
    KBI1PE =0XC3;      /* Enable KBI10,1,6,7*/                                    
    KBI1SC_KBIE = 1;   /* Enable Keyboard Interrupts */
    //KBI1SC_KBMOD = 1;  
    KBI1PE =0XC3;      /* Enable Pullup for Keyboard pin */   
    KBI1SC_KBACK = 1;  /* Clear Pending Keyboard Interrupts */
}
/********************************键盘中断**************************/
interrupt 87 void KBI1_ISR(void)
{           
    //KBI1SC_KBACK = 1; //清除键盘中断标志    
    //delayms(1);
    if(PTGD_PTGD0==0){ //查询是由哪一个口引起的中断
        PTFD_PTFD0 = ~PTFD_PTFD0;  
    }
    else if(PTGD_PTGD1==0){
        PTFD_PTFD1 = ~PTFD_PTFD1;
    }
    else if(PTGD_PTGD2==0){
        PTFD_PTFD2 = ~PTFD_PTFD2;
    }
    else if(PTGD_PTGD3==0){
        PTFD_PTFD3 = ~PTFD_PTFD3;
    }
    KBI1SC_KBACK = 1; //清除键盘中断标志
}
/***************************************************
  延时1毫秒函数
****************************************************/
void delayms(int ms)
{  
   int ii,jj;
   if (ms<1) ms=1;
   for(ii=0;ii<ms;ii++)
   {
     __RESET_WATCHDOG(); /* feeds the dog */
     for(jj=0;jj<2000;jj++);      // busclk 24MHz--1ms     
   }  
}
/***************************************************
  总线时钟配置函数
****************************************************/
void MCUInit(void)
{
  SOPT1 = 0x13;                   // disable COP
  MCGC2 = 0x36;
  while(!(MCGSC & 0x02));        // wait for the OSC stable
  MCGC1 = 0x98;
  while((MCGSC & 0x1C ) != 0x08); // external clock is selected
 MCGC3 = 0x48;
 while ((MCGSC & 0x48) != 0x48); // wait for the PLL is locked
 MCGC1 = 0x18;
  while((MCGSC & 0x6C) != 0x6C);
}
/*********************主函数************************************/
void main(void)
{    
    MCUInit();
    IO_INIT();
   KB_INIT();
    PTFD=0XFF;
    EnableInterrupts; /* enable interrupts */
    for(;;) {
       //__RESET_WATCHDOG(); /* feeds the dog */
       delayms(500);
       PTFD_PTFD6 = ~PTFD_PTFD6;
       PTFD_PTFD7 = ~PTFD_PTFD7; 
       
    } /* loop forever */
  /* please make sure that you never leave main */
}

开发板用完整工程:demoKBI.rar

附件:请先登陆查看附件!
 
相关主题
龙丘智能科技飞思卡尔专业开发板ODM:网站:http://www.lqist.cn淘宝店:http://shop36265907.taobao.com
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
研究研究
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
顶!我要顶!因为我需要!我知道!
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
很给力哦,定,定,定!
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
kankan.................
 
回复 链接 收藏
 
回复:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 

龙丘,O(∩_∩)O~,学习了!

 
可可小人物
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
学习了!
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
学习学习学习》》》》
 
回复 链接 收藏
 
回复:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 

kankan

 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
好资料,请多发一些,让后进学习学习.
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
[face]001[/face霓虹
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
study study
 
回复 链接 收藏
 
RE:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
haotie!有事龙丘
 
回复 链接 收藏
 
回复:北京龙丘智能科技--MCF52JM128完整键盘中断工程,KBI演示程序
 
我也需要,谢谢了
 
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏
1