百家乐合作包杀: [8/16位单片机] 【8月晒板卡】+ 如何开启按键的中断方式和启用定时器?

永利游戏开户直营
658|8
楼主
一、如何启用按键的中断方式?
    按键的中断方式比轮询方式更合理高效,百家乐合作包杀:我查看了pin_manager.h中对引脚的宏定义,发现可以通过代码来定义中断,但不知道中断处理函数是哪个、在哪个位置?
    这是我写的配置代码,不知道正确否:
  1. int main(void)
  2. {
  3.     /* Initializes MCU, drivers and middleware */
  4.     SYSTEM_Initialize();
  5.    
  6.     /* 开启按键中断 */
  7.     IO_PF6_SetDigitalInput();                  //设置数字输入方式
  8.     IO_PF6_EnableInterruptForLowLevelSensing();//启用低电平感应中断
  9.    

  10.     /* Replace with your application code */
  11.     while (1){
  12.         if(IO_PF6_GetValue()==0){
  13.             DELAY_milliseconds(50);
  14.             if(IO_PF6_GetValue()==0){
  15.                 if(direction==1){
  16.                     delays = delays << 1;
  17.                     if(delays > 1000){
  18.                         direction = 0;
  19.                         delays = 800;
  20.                     }
  21.                 }
  22.                 else{
  23.                     delays = delays >> 1;
  24.                     if(delays < 100){
  25.                         direction = 1;
  26.                         delays = 100;
  27.                     }
  28.                 }
  29.             }
  30.         }
  31.         IO_PF5_Toggle();
  32.         DELAY_milliseconds(delays);
  33.     }
  34. }
复制代码





二、如何启用定时器
    我想启用定时器的功能来控制LED的闪烁,免得使用低效的延时程序,但不清楚如何配置和启用定时器,在数据手册里也没有找到有关定时器的部分,在此请教大家该如何配置和启用定时器。
沙发
 楼主 | 2019-10-3 18:19 | 只看该作者
    在pin_manager.c文件中找到了中断处理函数(见下图),但定时器配置和启用仍不知道。



板凳
 楼主 | 2019-10-3 18:29 | 只看该作者
    按键中断方式测试不成功,也许是还有哪里没有设置好。主函数中的代码如下:
  1. int main(void)
  2. {
  3.     /* Initializes MCU, drivers and middleware */
  4.     SYSTEM_Initialize();
  5.    
  6.     /* 开启按键中断 */
  7.     IO_PF6_SetDigitalInput();                  //设置数字输入方式
  8.     IO_PF6_EnableInterruptForLowLevelSensing();//启用低电平感应中断
  9.    

  10.     /* Replace with your application code */
  11.     while (1){
  12.         if(keys>0){
  13. //        if(IO_PF6_GetValue()==0){
  14.             keyok = 1;                        //锁定按键,此时不接收新按键
  15.             DELAY_milliseconds(50);           //延时防抖
  16.             if(IO_PF6_GetValue()==0){
  17.                 if(direction==1){
  18.                     delays = delays << 1;
  19.                     if(delays > 1000){
  20.                         direction = 0;
  21.                         delays = 800;
  22.                     }
  23.                 }
  24.                 else{
  25.                     delays = delays >> 1;
  26.                     if(delays < 100){
  27.                         direction = 1;
  28.                         delays = 100;
  29.                     }
  30.                 }
  31.             }
  32.             keyok = 0;                      //释放按键锁定
  33.         }
  34.         IO_PF5_Toggle();
  35.         DELAY_milliseconds(delays);
  36.     }
  37. }
复制代码




    中断处理函数中的代码如下:
  1. void PORTF_IO_PF6_DefaultInterruptHandler(void)
  2. {
  3.     // add your PORTF_IO_PF6 interrupt custom code
  4.     if(keyok==0)
  5.         keys++;
  6.     // or set custom function using PORTF_IO_PF6_SetInterruptHandler()
  7. }
复制代码


地板
 楼主 | 2019-10-3 18:39 | 只看该作者
我启用下降沿中断也没反映。


    IO_PF6_SetDigitalInput();                  //设置数字输入方式
//    IO_PF6_EnableInterruptForLowLevelSensing();//启用低电平感应中断
    IO_PF6_EnableInterruptForFallingEdge();    //启用下降沿中断

评论

gjiang6789 2019-10-5 21:11 回复TA
晕晕乎乎的 
5
 楼主 | 2019-10-3 18:40 | 只看该作者
启用双边缘中断也无反映。

    /* 开启按键中断 */
//    PORTF_IO_PF6_SetInterruptHandler();        //此函数的参数未知
    IO_PF6_SetDigitalInput();                  //设置数字输入方式
//    IO_PF6_EnableInterruptForLowLevelSensing();//启用低电平感应中断
//    IO_PF6_EnableInterruptForFallingEdge();    //启用下降沿中断
    IO_PF6_EnableInterruptForBothEdges();      //启用双边缘中断
6
| 2019-10-4 12:01 | 只看该作者
放到月月送讨论区了
7
| 2019-10-5 12:03 | 只看该作者
为何我自己写的延时函数看不到效果
8
 楼主 | 2019-10-5 18:29 | 只看该作者
zhuomuniao110 发表于 2019-10-5 12:03
为何我自己写的延时函数看不到效果

我的也是,三重循环,分别循环20000次都看不到延时效果,与没有延时一样。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
菲律宾申博体彩排列3时时彩平台怎么样 澳门凯旋门自助餐订票 华人彩票登录手机app 九五至尊线上娱乐网站手机app 快乐彩票集团
现金真人骰宝 玛雅娱乐城 金沙娱乐现场娱乐 ag亚游集团 爱盟幼儿园
网上最大博彩 辉煌娱乐网登入 澳门kk赌场开户 ag官方投注 岱山天都娱乐城电子游戏
王者荣耀微信充值登入 玛雅海滩娱乐项目官方网 澳门沙龙娱乐官方网站 菲律宾申博代理网址 新葡京南京娱乐场官网