質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
C

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

Arduino

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

Q&A

0回答

913閲覧

arduino 組み込みソフトウェア

sutdy_python1

総合スコア8

C

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

Arduino

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

0グッド

0クリップ

投稿2021/12/07 04:49

編集2021/12/07 05:04

数字の①②③を手直しして
・スイッチ①を押すたびに音階の方向が切り替わる(ドレミファからドシラソファのように逆になる)
・スイッチ②を押す度に1オクターブ上下する(プリスケーラ設定をつかう)
の期限が迫っているにもかかわらず、ほとんど進んでいません。
よろしくお願いいたします。

#include <avr/io.h> #include <avr/wdt.h> #include <avr/interrupt.h> #define CTOP (0.5*F_CPU/1024-1) volatile unsigned char tone[8] = { 238, 212, 189, 178, 158, 141, 126, 118 }; volatile signed char n = -1; volatile signed char dir = 1; volatile unsigned char sw_cnt = 0;//値を確定するまでの繰り返し数 volatile unsigned char sw = 0;//スイッチの確定値 volatile unsigned char sw_flag = 0;//スイッチ状態の変化ビット unsigned char led[8]={0xAA}; //sw1,2のピン変化で起動 ISR(PCINT1_vect) { sw_cnt = 10;//2 x 10 mSec } //2mSecごとに起動 ISR(TIMER0_COMPA_vect) { static unsigned char sc = 0xfe; static unsigned char scan = 0; unsigned char sw_new; PORTB = 0; PORTD &= 0x3f; sc = (sc << 1) | (sc >> 7); scan = (scan + 1) & 7; PORTB = led[scan]; PORTC = (PORTC & 0xf0) | (sc & 0x0f); PORTD = (led[scan] & 0xc0) | (sc & 0x30) | (PORTD & 0x0f); if(sw_cnt) {//ピン変化割り込みがあれば if(--sw_cnt == 0) {//値が安定するまで待つ sw_new = (~PINC >> 4) & 3;//最新の読み取り値 sw_flag = sw ^ sw_new;//ON/OFF変化を検出 sw = sw_new;//読み取り値を更新 } } } ISR(TIMER1_COMPA_vect) { unsigned char i,k,m; n = (n + 1) & 7; ① OCR2A = tone[n]; //音階一の縦棒表示 k = 0x80 >> n; m = (TCCR2B & 1) * 3; led[0] ^=0xFF; for (i = 1; i < 3; i++) { led[m + i] = k; } } int main() { DDRB = 0x3f; DDRC = 0x0f; DDRD = 0xf8; PORTB = 0xc0; PORTC = 0xf0;//pull-up PC5,PC4 PORTD = 0x07; PCMSK1 = 0x30; PCICR = _BV(PCIE1); //Timer0 TCCR0A = 0x02;// TCCR0B = 0x04;//CTC,1/256 OCR0A = 124; TCNT0 = 0; TIFR0 = 0x07;//タイマフラグを全クリア TIMSK0 |= _BV(OCIE0A);//比較一致割り込み許可 //Timer1 TCCR1A = 0x00;//Compare Match Output Toggle COM2A,B TCCR1B = 0x0d;//CTC,1/1024 OCR1A = CTOP; TCNT1 = 0; TIFR1 = 0x07;//タイマフラグを全クリア TIMSK1 |= _BV(OCIE1A);//比較一致割り込み許 //Timer2 TCCR2A = 0x12;//Compare Match Output Toggle COM2B TCCR2B = 0x05;//CTC,1/64 OCR2A = 1; TCNT2 = 0; sei();//割り込み許可 for(;;){ wdt_reset(); //読み取り値に変化があれば if(sw_flag) { sw &= sw_flag;//sw_ON 変化のみ抽出 if(sw==1) { ② } if(sw==2) { ③ } sw_flag = 0; } } return 0; }

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

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

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

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

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

y_waiwai

2021/12/07 04:51

このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください で、しつもんはなんでしょうか
sutdy_python1

2021/12/07 05:05

ろくにプレビューせずに投稿したので、気づきませんでした。質問内容は、①②③をいじって ・スイッチ①を押すたびに音階の方向が切り替わる(ドレミファからドシラソファのように逆になる) ・スイッチ②を押す度に1オクターブ上下する(プリスケーラ設定をつかう) の機能を持たせることです。
sutdy_python1

2021/12/07 05:35

③はできたので①②お願いします
thkana

2021/12/07 05:55

「よろしくお願いします」 というのは、そう書いておくとソースコードができあがってくる魔法の言葉かなにかだと思っているのでしょうか?
sutdy_python1

2021/12/07 06:07

ここは質問するサイトであり、自分の力じゃ分からない事を聞く場所ですよね?何が言いたいんですか笑笑
episteme

2021/12/07 07:12

あなたの挙げた文章とコードのどこにも「質問」が見当たりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問