電子書籍の厳選無料作品が豊富!

/*------ 自動□□装置 -----------*/
/*------ 2013年02月26日 MICR-V1 -----------*/
/*------ AVR TOOLS AVR studio 4 ----------*/
/*------ マイコン型式 AT90S2323/2343 --------*/

#include <stdio.h>

long ka;
long ke;
long ke1;
long k10;
int kk;
int pa;
long tm1;
long tm2;
long tm3;
long kn;
#include <avr\io.h>

#define _PORT PORTB
#define _DDR DDRB
#define _PIN PINB
/*---------------------メインプログラム-------------------*/
int main(void)
{
DDRB = 0xfe; /*---- 11111110 PB0;入力 PB1;出力--*/
/*------------------ PB0入力有り--------------------*/

while(!(PINB &_BV (PB0))
{
/* 異常(1)../micrv001.c:30: error: expected ')' before '{' token-----*/
tm2 = 0; tm1++; pa=tm1/100;

if (pa>=10);

ka =12345; /* ------ □ NO ka=1~99999----------*/
ke = 0; /*------- 検索アドレス ---------*/
ke1 = 0; /*------- 桁検索アドレス ---------*/
k10 = 1; /*------- 桁x10 ---------*/
kk = 0; /*------- 桁カウンタ ---------*/
pa = 0; /*------- 信号カウンタ ---------*/
tm1 = 0; /*------- 信号ONタイマ ---------*/
tm2 = 0; /*------- 信号OFFタイマ ---------*/
tm3 = 0; /*--------LED,ON-OFFタイマ ---------*/
}

/* ----------------PB0入力無し---------------------*/
while ((PINB &_BV (PB0))
{

tm1=0; tm2++;
if (tm2==100)
if (kk<=4)

ke1 = pa*k10;
ke = ke+ke1;
k10 = k10*10;
kk ++;
pa = 0;
ke1 = 0;
tm2 = 0;

if (kk==5)
if (ka==ke)
}

/*-------------------LED表示 ---------------------*/
do
{
tm3=800;
do
{
tm3--;
if (tm3>400) PORTB 0xff;
else if (tm3<400) PORTB 0xfe;
} while (tm3 !=0);
} while (tm3 ==0);
} /*異常(2)../micrv001.c:78: error: expected declaration or statement at end of input
----*/

/*-------------------- end of file ---------------*/

/* Build failed with 2 errors and 0 warnings... */

A 回答 (5件)

http://oshiete.goo.ne.jp/qa/7920705.html
で、「括弧の数があっているか確認を」という回答がありましたが…身についていないみたいですね。

main()の{に対応する}があります?

>#include <avr\io.h>

/にするべき。
という指摘は受け入れられませんね。

>if (pa>=10);

無意味な条件判定ですが、よろしいので?

>if (tm2==100)
>if (kk<=4)
>
>ke1 = pa*k10;

ke1の算出はtm2が100でkkが4未満の時だけでいいということでOKですか?

>if (kk==5)
>if (ka==ke)

無意味な条件判定ですが、必要ですか?

>while(!(PINB &_BV (PB0))
>/* 異常(1)../micrv001.c:30: error: expected ')' before '{' token-----*/

'('が3個、')'が2個で対応取れているのですか?
「エラーメッセージは'{'の前に')'が足りない。」と言っていますが。

>} /*異常(2)../micrv001.c:78: error: expected declaration or statement at end of input----*/

main()の'}'で閉じられる前にファイルが終端に達したようです。
さんざん指摘されている括弧の数の対応をないがしろにした結果です。
    • good
    • 0

とりあえずビルドを通すだけなら、全部削除して



int main(void) { return 0; }

だけにすればOKです。
    • good
    • 0

>ke1の算出はtm2が100でkkが4未満の時だけでいいということでOKですか?



4「以下」だった。
まぁ、いずれにしろke1の算出は常に実行されるわけではない。ですが。

#2さんの指摘する「初心者はif文で{}を書かない手抜きをしちゃダメ。全部のif文に{}を書きましょう。」を実践していればわかりやすくなりますが。


とか、さんざん指摘しても反応ないんでしょうねぇ……。
そのうち回答してくれる人が居なくなってしまうかも知れませんので注意した方がいいですよ。
# ま、別の誰かが回答してくれるでしょうけど。

今回のプログラム、結構前からハマっているようですが…まさか仕事ではないですよね???
    • good
    • 0

>マイコンビルドエラー修正方法を教えて下さい。



まず、エラーメッセージの内容を良く読め!

error: expected ')' before '{' token

これは「)が来る前に{が来ているぞ」って言ってる。

その意味が解らないなら「)が来る前に{が来ているぞ」ってのを100回声に出して読め!

100回声に出しても解らないなら、もう質問するな。貴方にはC言語は無理だ(つ~か、英語も日本語も無理だ)

error: expected declaration or statement at end of input

これは「宣言や文が終わらないままソースファイルの入力が尽きた」って言ってる。

例えば「{があるのに}が無い」って場合だ。

そう言われて「どうすれば良いか判らない」ってなら、もう質問するな。貴方にはC言語は(以下同文)

呆れてあいた口が塞がらんわ。
    • good
    • 0

マイコンというよりC言語として間違っている。



1.のエラー
while( !( PINB & _BV ( PB0 ) ) 括弧の数があっていない。

2.のエラー
初心者はif文で{}を書かない手抜きをしちゃダメ。全部のif文に{}を書きましょう。
これも{}の対応が変になっている。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!