🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

1回答

689閲覧

ソフトウェアからハードウェアに置換えたい

jyojyo

総合スコア3

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2021/02/09 23:48

編集2021/02/10 11:48

初めに
こんにちは!
授業でArduinounoとAtmega328を触っているものです。現在、成果物として、サンプル曲をledで光らすようにするプログラムを作成中です。ソフトウェアに対応するシステムが出来上がっているのですが、これをハードウェアで鳴らしたいときにどうすれば良いのか分からずに困っています‼️
そして同じ動作をさせたいです。

プログラムコード
動作成功

Arduino

1#define F_CPU 8000000UL 2#include<avr/io.h> 3#include<util/delay.h> 4const uint8_t tempo = 100; /*記憶*/ 5void playTone(uint16_t tone, uint16_t duration) { 6 for (uint32_t i = 0; i < duration * 1000L; i += tone * 2 / 10) {/*duration=期間*/ 7 PORTC = 0x0000001; 8 for (uint16_t j = 0; j < tone / 10; j++) { 9 _delay_us(1); /*X ミリ Oマイクロ*/ 10 } 11 PORTC = 0x0000000; 12 for (uint16_t j = 0; j < tone / 10; j++) { 13 _delay_us(1); 14 } 15 } 16 17 return; 18}

動作失敗
※このプログラムを動作同じにしていくこと

Arduino

1#define F_CPU 8000000UL 2#include<avr/io.h> 3#include<util/delay.h> 4#include <avr/interrupt.h> 5const uint8_t tempo = 100; //char 6const byte PIN_BUZZLE = 10; 7const byte PIN_INTERRUPT = 23; 8volatile byte state = LOW; 9void playTone(uint16_t tone, uint16_t duration) { 10 pinMode( PIN_BUZZLE, OUTPUT ); 11 digitalWrite( PIN_BUZZLE, state ); 12 13 attachInterrupt( 14 digitalPinToInterrupt(PIN_INTERRUPT), 15 toggle_BUZZLE, FALLING ); 16} 17 void duration() { 18 digitalWrite( PIN_BUZZLE, state ); 19} 20 void toggle_BUZZLE(){ 21 state != state; 22 _delay_us(1); 23 }

このコードで実行したいこと
現在、ArduinounoとAtmega328を使っています。ソフトウェアは成功していますがハードウェアはledと音を鳴らすのが困難になっています。

最終的に達成したいこと
課題の提出がもう休みあけに出さないといけないので焦っています‼️

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/02/10 00:05

ハードウエアにするとは、Arduinoを使わずに、回路を組んでそれで実装するってことでしょうか。 質問が意味不明です
jyojyo

2021/02/10 03:26

最初はarounduno(Atmega328)を使って最後にAtmega328に書き込みます
guest

回答1

0

Aruduio については何も知らないので今まで回答しませんでしたが、
toggle という関数名から、
state != state; ではなく、state = !state; ではありませんか?
別の質問で多くの指摘があるのになぜそこを見直さないのでしょうか?

投稿2021/02/10 12:03

編集2021/02/12 07:41
kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyojyo

2021/02/10 23:46

しなかったぜ 今したよね
kazuma-s

2021/02/12 05:46

「state != state; が悪い」という指摘はあったけれど、見直しはしなかった。 今、見直しをした、ということですね。 で、その結果はどうだったんですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問