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

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个回答
晓枫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
复制代码
一花一世界003 回答时间:2015-1-28 15:13:14
晓枫VS枯叶 发表于 2015-1-26 10:30
这是中断的构造函数

感谢,请问你是怎么找到的???
sacq12 回答时间:2015-1-29 10:35:57
楼主的程序可以成功编译,(在线mbed),产生bin文件,下载到NUCLEO板子不成问题。
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吧.
fjjjnk1234 回答时间:2015-1-26 11:47:38
感谢分享
wangweili1978 回答时间:2015-1-26 23:02:20
22.png
wyxy163@126.com 回答时间:2015-1-27 12:50:11
提示: 作者被禁止或删除 内容自动屏蔽
一花一世界003 回答时间:2015-1-28 14:20:36
O(∩_∩)O谢谢
stary666 回答时间:2015-1-28 14:29:33
moyanming2013 回答时间:2015-1-28 14:37:49
晓枫VS枯叶 发表于 2015-1-26 10:30
这是中断的构造函数

源码如何下载?
12下一页

所属标签

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