北航电设实验——按键发报

简单的代码,但你们都是不简单的航专生

#include"TimerOne.h"

int frequency = 500;

int buzzerPin = 2;

int buttonPin = 6;

int buttonState = 0;

void setup() {

  Serial.begin(9600);

  pinMode(buzzerPin, OUTPUT);

  pinMode(buttonPin, INPUT);

  uint32_t fTransmit = 1000; // KHz

  TCCR1A = 0b01000000;

  TCCR1B = 0600001001; // CTCHIt

  OCR1A = F_CPU / (2000 * fTransmit) - 1;

  pinMode(9, OUTPUT) ;

  char strbuf[255];

  sprintf(strbuf,"设置载波频率:%d KHZ",(F_CPU / (2 * (1 + OCR1A)) / 1000));

  Serial.println(strbuf);

}

void loop() {

  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {

    tone(buzzerPin, frequency);

  }

  else {

    noTone(buzzerPin);

  }

  if (Serial.available()) {

    int newFrequency = Serial.parseInt();

    if (newFrequency > 0&& newFrequency > 31) {

      frequency = newFrequency;

    }

    while (Serial.available()) {

      Serial.read();

    }

  }

}

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值