4092|2

3415

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

【FR4133搞机】gpio和外部中断 [复制链接]

双十一做了个板:https://bbs.eeworld.com.cn/thread-477716-1-1.html
总得用起来
那就对FR4133来学习学习吧
从最基础的开始
GPIO和外部中断吧
硬件撸上

拆机的LED灯
撸上
在了解FR4133的过程中,发现不少好玩的东西
似乎这块MCU针对性特别强
用于段式LCD驱动的管脚,全部没有复用功能

有复用功能的管脚特别少
暴殄天物啊,可惜了40多个管脚的U
初始化GPIO
  1. void GPIO_init(void)
  2. {
  3.          WDTCTL = WDTPW | WDTHOLD;               // Stop watchdog timer

  4.             P3OUT &= ~BIT0;
  5.             P7OUT &= ~BIT3;
  6.             P3DIR |= BIT0;T
  7.             P2DIR &= ~BIT7;
  8.             P2DIR &= ~BIT7; // P2.7....设为输入(可省略)
  9.             P2IES |= BIT7;    // P2.7....设为下降沿中断
  10.             P2IE  |= BIT7;    // 允许P2.7..中断
  11.             _enable_interrupts();
  12.             PM5CTL0 &= ~LOCKLPM5;                   // Disable the GPIO power-on default high-impedance mode
  13.                                                     // to activate previously configured port settings
  14. }
复制代码
和MSP430其他系列差不多
PM5CTL0 &= ~LOCKLPM5;
据说是和低功耗有关,端口电源管理之类
  1. void P2_IODect()
  2. {__delay_cycles(10000);
  3.         if((P2IN&BIT7)==0)
  4.                             {
  5.                             count++;
  6.                             if(count>3){count = 0;}
  7.                             }
  8.                     switch (count){
  9.                     case 1:
  10.                                             data = 0;
  11.                                             FRAMCtl_write8(&data,FRAM_write_ptr,1);
  12.                                             break;
  13.                     case 2:
  14.                                         data = 1;
  15.                                         FRAMCtl_write8(&data,FRAM_write_ptr,1);
  16.                                         break;
  17.                     case 3:
  18.                                         data = 2;
  19.                                         FRAMCtl_write8(&data,FRAM_write_ptr,1);
  20.                                         break;
  21.                     default: break;
  22.                     }
  23. }

  24. #pragma vector = PORT2_VECTOR                      //端口2的中断向量
  25. __interrupt void PORT2_ISR(void)
  26. {
  27. //-----启用Port2事件检测函数-----
  28. P2_IODect();       //检测通过,则会调用事件处理函数
  29.     P2IFG=0;                   //退出中断前必须手动清除IO口中断标志
  30. }
复制代码

消抖也在中断里面延时
任性,来咬我呀
通过按键中断来控制blink速度
blink代码
还是进行了Flash读写来进行blink
  1. void blink(void)
  2. {
  3.         temp = *FRAM_write_ptr;
  4.                 if(count){
  5.                 switch (temp){
  6.                             case 0:

  7.                                      P3OUT ^= BIT0;                  // Toggle LED to show 512K bytes
  8.                                                 __delay_cycles(90000);

  9.                                                     break;
  10.                             case 1:

  11.                                      P3OUT ^= BIT0;                  // Toggle LED to show 512K bytes
  12.                                                 __delay_cycles(360000);
  13.                                                 break;
  14.                             case 2:

  15.                                      P3OUT ^= BIT0;                  // Toggle LED to show 512K bytes
  16.                                                 __delay_cycles(630000);
  17.                                                 break;
  18.                             default: P3OUT |= BIT0;break;
  19.                             }
  20.                 }
  21. }
复制代码
看动作

后面
慢慢玩吧









最新回复

  详情 回复 发表于 2015-11-29 19:26
 
点赞 关注
个人签名

So TM what......?


回复
举报

6078

帖子

4

TA的资源

版主

沙发
 
加油
 
 

回复

710

帖子

5

TA的资源

一粒金砂(高级)

板凳
 
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表