你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ARM MBED----关于MBED的中断程序设计

[复制链接]
一花一世界003 发布时间:2015-1-25 22:00
列程序出来
#include "mbed.h"
InterruptIn mybutton(USER_BUTTON);
DigitalOut myled(LED1);

float delay = 1.0; // 1 sec

void pressed()
{
    if (delay == 1.0)
        delay = 0.2; // 200 ms
    else
        delay = 1.0; // 1 sec
}

int main()
{
    mybutton.fall(&pressed);
    while (1) {
        myled = !myled;
        wait(delay);
    }
}
InterruptIn 这个类的构造函数看不了。
QQ截图20150125215210.png
但是,还是下载不进板子之中!
还有2个非常有意思的库,TICKER,TIMEOUT
接着,我看这些IAR的教程不是非常多,所以,我会开一些例程,看看IAR怎么样处理

收藏 评论17 发布时间:2015-1-25 22:00

举报

17个回答
shaoziyang 回答时间:2015-1-25 23:06:19
有源码,可以慢慢研究。
feel-376797 回答时间:2015-1-26 05:14:39

谢谢楼主分享
拼命三郎 回答时间:2015-1-26 08:09:30
stm32.jpg
星辰一方 回答时间:2015-1-26 08:36:40
等待楼主IAR例程
一花一世界003 回答时间:2015-1-26 09:22:12
O(∩_∩)O好的
harvardx 回答时间:2015-1-26 10:16:03
ARM公司亲自搞的 东西 ,你居然iar 哈哈 . 还是MDK吧.
晓枫VS枯叶 回答时间:2015-1-26 10:30:24
这是中断的构造函数
  1. namespace mbed {

  2. InterruptIn::InterruptIn(PinName pin) : gpio(),
  3.                                         gpio_irq(),
  4.                                         _rise(),
  5.                                         _fall() {
  6.     gpio_irq_init(&gpio_irq, pin, (&InterruptIn::_irq_handler), (uint32_t)this);
  7.     gpio_init_in(&gpio, pin);
  8. }

  9. InterruptIn::~InterruptIn() {
  10.     gpio_irq_free(&gpio_irq);
  11. }

  12. int InterruptIn::read() {
  13.     return gpio_read(&gpio);
  14. }

  15. void InterruptIn::mode(PinMode pull) {
  16.     gpio_mode(&gpio, pull);
  17. }

  18. void InterruptIn::rise(void (*fptr)(void)) {
  19.     if (fptr) {
  20.         _rise.attach(fptr);
  21.         gpio_irq_set(&gpio_irq, IRQ_RISE, 1);
  22.     } else {
  23.         gpio_irq_set(&gpio_irq, IRQ_RISE, 0);
  24.     }
  25. }

  26. void InterruptIn::fall(void (*fptr)(void)) {
  27.     if (fptr) {
  28.         _fall.attach(fptr);
  29.         gpio_irq_set(&gpio_irq, IRQ_FALL, 1);
  30.     } else {
  31.         gpio_irq_set(&gpio_irq, IRQ_FALL, 0);
  32.     }
  33. }

  34. void InterruptIn::_irq_handler(uint32_t id, gpio_irq_event event) {
  35.     InterruptIn *handler = (InterruptIn*)id;
  36.     switch (event) {
  37.         case IRQ_RISE: handler->_rise.call(); break;
  38.         case IRQ_FALL: handler->_fall.call(); break;
  39.         case IRQ_NONE: break;
  40.     }
  41. }

  42. void InterruptIn::enable_irq() {
  43.     gpio_irq_enable(&gpio_irq);
  44. }

  45. void InterruptIn::disable_irq() {
  46.     gpio_irq_disable(&gpio_irq);
  47. }

  48. #ifdef MBED_OPERATORS
  49. InterruptIn::operator int() {
  50.     return read();
  51. }
  52. #endif

  53. } // namespace mbed
复制代码
fjjjnk1234 回答时间:2015-1-26 11:47:38
感谢分享
wangweili1978 回答时间:2015-1-26 23:02:20
22.png
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版