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

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

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

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

Arduino

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

Q&A

解決済

1回答

2234閲覧

組み込みソフトウェア 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 01:27

このプログラムを実行すると、上から7行目のところでエラーが出ます。エラーには、
'volatile unsigned char tone [8]' redeclared as different kind of symbol
と出ますが、調べても解決しませんでした。どうしたらエラーが無くなりますか。

#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 = 0; i < 2; 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ページで確認できます。

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

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

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

guest

回答1

0

ベストアンサー

その変数と同じ名前の関数がすでに定義されています
その変数の名前を変えるといいかと

投稿2021/12/07 01:30

y_waiwai

総合スコア87719

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

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

sutdy_python1

2021/12/07 04:43

めちゃくちゃ初歩的なミスでしたw 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問