极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12792|回复: 0

新手求助 中断的问题

[复制链接]
发表于 2016-4-17 16:33:50 | 显示全部楼层 |阅读模式
一个简单的遥控开关窗的小程序,0 1 口用的外部中断接限位开关,12 13遥控器, 2 3 电机驱动板。但是不知道为什么 子函数 mode1()和mode2()在向2或3口写低电平时总是只有3.8v左右,而不是0,而且执行完mode1,2()后 2,3口不是之前写入的高或低的状态,通通变成HIGH。只要删掉中断 ,其他的就很正常 不知道程序哪里出了问题,请大家帮忙看一下
  1. int guan = 12;
  2. int kai = 13;

  3. void setup()
  4. {

  5. pinMode(2,OUTPUT); //2 3电机驱动接口
  6. pinMode(3,OUTPUT);
  7. attachInterrupt(0,xv1,LOW); //限位开关中断
  8. attachInterrupt(1,xv2,LOW);
  9. pinMode(0,INPUT_PULLUP); //设置中断口为内部上拉模式
  10. pinMode(1,INPUT_PULLUP);
  11. pinMode(guan,INPUT_PULLUP);
  12. pinMode(kai ,INPUT_PULLUP); // 遥控器


  13. }
  14. void loop()
  15. {

  16. if(digitalRead(guan)==LOW)
  17. {
  18. motor();
  19. }
  20. if(digitalRead(kai)==LOW)
  21. {
  22. motor2();
  23. }


  24. //其他模块及函数............


  25. }
  26. //**********************************************
  27. void motor1() //关窗电机函数
  28. {
  29. digitalWrite(2,HIGH); //改high与low可控制电机正反转
  30. digitalWrite(3,LOW);
  31. }


  32. void motor2() //开窗电机函数
  33. {
  34. digitalWrite(2,LOW); //改high与low可控制电机正反转
  35. digitalWrite(3,HIGH);
  36. }
  37. //111111111111111111111111111111111111111


  38. void xv1() //限位1
  39. {
  40. digitalWrite(2,HIGH);//电机刹车
  41. digitalWrite(3,HIGH);
  42. }


  43. //22222222222222222222222222222222222222
  44. void xv2() //限位2
  45. {
  46. digitalWrite(2,HIGH); //电机刹车
  47. digitalWrite(3,HIGH);
  48. }
复制代码
回复

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 10:10 , Processed in 0.032942 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表