AVR Studio4 をダウンロードし C言語でプログラムを作りたいのですが WinAVR もいれ AVR Gccで製作しました。
簡単な テスト サンプルをコピー ビルドすると

make: Makefile: No such file or directory
make: *** No rule to make target `Makefile'. Stop.
Build failed with 2 errors and 0 warnings...

が表示され コンパイルできません。 
C言語プログラム すべて このようなエラーが出て
コンパイルできません。 
どのように直せば C言語プログラム受け付けてくれるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

つい昨日まで自分も同じ結果で落胆してましたが、やっと今日 出来ました。


もし、パソコンの名前、ユーザー名も含めてフォルダーの名前も含めて
どこかに全角文字を使っていたなら
PCで使用している名前、フォルダー名 すべてを半角英数字にしてみてください。
皆さんと俺の条件が違うかもしれないけど、たぶん 行けると思います。
    • good
    • 1

最近H8系からAVRに乗り換えて格闘しています



AVR STUDIOは、makefileは自分で作らないとダメなようですね

最初のエラーは、ファイル名(拡張子.cを除く)が入っていないということ、2番目はAVRの型番が入っていないということで、該当箇所をエディターで修正すれば動くと思います

H8より敷居が高く、入門書も間違いが多く大変ですが、いろいろバリエーションがあって安いのが魅力的です

参考URL:http://www.geocities.jp/kuman2600/kantanouyou.html
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAVRのUSART接続で困っています。

AVRのUSART接続で困っています。
AVR初心者です。Atiny2313に送受モニタ用のLED2個と秋月のFT232Rシリアル-USB変換モジュールのみを接続した簡単な回路を組み、双方のTXD,RXD同士を交差接続し、PCとUSART経由でデータ転送をする実験をしています。変換モジュールの電源はUSBバスから、AVR側の電源は安定化電源またはモジュール経由でUSBバスから供給しました。データの送受信自体は何の問題もないのですが、わからないことがありご教示下さい。

1)変換モジュールのTXD,RXDをAVR側のRXD,TXDに接続しただけで、AVRに電源が供給されてしまい、わざわざ別電源を供給しなくともAVRが勝手に動いてしまいます。各部の電圧は正規に電源を供給した時よりも0.5V程度低めにでますが、AVR自体の動作はUSARTを使う使わないにかかわらず(例えばLEDポートの初期化のみでも)正常です。AVR側の配線とソフトは何度もチェックして間違いないと確信しています。こんなものなのでしょうか?

2)USART初期化ルーチンで教科書どおり下記の様に書きました。デバッガで追跡すると最初はUBRRHにゼロが入るのですが、なぜか6行目を実行するとUCSRCの内容と同じものがUBRRHにも入ってしまいます。
ldi r16, 0
out UBRRH, r16
ldi r16, 0x19;bau rate 2400 at 1MHz
out UBRRL, r16
ldi r16, 0b00000110;async, no parity
out UCSRC, r16;1 stop bit data 8bit

いろいろ検討したところ、UCSRCのMSBを1(ldi r16, 0b10000110)としてやるとUBRRHにははいらないことがわかりました。ATMELのマニュアルではこのビットはリザーブなおでさわるなとありそれ以上の説明はありません。何かおかしなことをやっているのでしょうか? この簡単な6行だけのプログラムですら1)、2)の問題が起きます。一体何が悪いのか切り分けができず困っています、アドバイスをお願いします。

AVRのUSART接続で困っています。
AVR初心者です。Atiny2313に送受モニタ用のLED2個と秋月のFT232Rシリアル-USB変換モジュールのみを接続した簡単な回路を組み、双方のTXD,RXD同士を交差接続し、PCとUSART経由でデータ転送をする実験をしています。変換モジュールの電源はUSBバスから、AVR側の電源は安定化電源またはモジュール経由でUSBバスから供給しました。データの送受信自体は何の問題もないのですが、わからないことがありご教示下さい。

1)変換モジュールのTXD,RXDをAVR側のRXD,TXDに接続しただけで、AV...続きを読む

Aベストアンサー

>接続しただけで、AVRに電源が供給されてしまい

AVRマイコンに、予定の電源供給元([電源1]とします)からの
供給がない時でも、AVRマイコンの信号入力端子に"High"レベルの信号入力があると
それが電源端子の電圧も引き上げようとします。
電源1 がメカスイッチなどで切り離されてる、AVRマイコン部分の消費電力がごく少ない、と
顕著です。

これは、信号端子の内部に保護回路として電源端子に向かってダイオードが入っている為です。
>0.5V程度低めにでますが、
はダイオードの順方向電圧降下分、低くなる、という事です。


電源投入順序によってはうまく初期化がされない事も起こり得るし、
基本的に半導体部品に「電源供給なしで信号端子に電圧がかかる状態」はまずいです。
(先の保護回路により、すぐ壊れることはないでしょうけど)
電源供給元と供給先が複数ある場合は
・一方で他方をON/OFFコントロールする
・電源OFF部分にに高い電圧を与えないように
 「電源ON部分の出力はLowかハイインピーダンスにする」
のようなコントロールが要ります。

この点ではなるべく電源は1つの方がいいです。

>2)USART初期化ルーチン
の方は知識がないのでわかりません。

>接続しただけで、AVRに電源が供給されてしまい

AVRマイコンに、予定の電源供給元([電源1]とします)からの
供給がない時でも、AVRマイコンの信号入力端子に"High"レベルの信号入力があると
それが電源端子の電圧も引き上げようとします。
電源1 がメカスイッチなどで切り離されてる、AVRマイコン部分の消費電力がごく少ない、と
顕著です。

これは、信号端子の内部に保護回路として電源端子に向かってダイオードが入っている為です。
>0.5V程度低めにでますが、
はダイオードの順方向電圧降下分、低くなる...続きを読む

Qmakefileのmakeでコンパイルする云々に関係無くターゲットを実行させたいのだが出来るのかなあ

makefileの内容が下記で
01.exe:01.c
 gcc -o 01.exe 01.c

ここで、コンパイル云々をして無条件に01.exeを実行させたいのですが。この様なmakeは出来るのでしょうか。若しも、出来るのであればその時のmakefileの内容を教えて下さい。宜しく、お願いします。

Aベストアンサー

あるいは、.PHONYとall ターゲットを使って
.PHONY: all
all: 01.exe
 ./01.exe # 01.exeの実行

QAVR Studio 5へ移行可能?

今まで、ATmega88のC言語プログラムをAVR Studio4.18 + WINAVRで書いていたのですが、AVR Studio5が登場してきて、今まで作ったC言語のファイルをそのまま移行してコンパイルすることは可能なのでしょうか?


どうぞ、ご教授頂きますよう、お願いいたします。

Aベストアンサー

基本的には、そのまま移行できます。

ただし、(これは、AVR Studio のバージョンの問題というより、WinAVRの方のバージョンの問題ですが)、
WinAVR(AVR toolchain)側のgccのバージョンが変わることにより、最適化の傾向が変わる場合もありますので、
・volatileの使い方をミスっているなど「たまたま動いていたプログラム」が、違うバージョンのgccでは動かなくなる、
・出力コードサイズがメモリ容量ぎりぎりだったりすると、つがうバージョンのgccではメモリが収まらなくなる、
といったことになる可能性は否定できません。

QTarget(ターゲット)、Make(メーク)、Build(ビルド)の意味

 今日は、Cの初心者です、宜しくお願いします。

 いま、EclipseにCDTをインストールして使っています。
 ソースから走らせると、色々なコメントとか、メニューバーにもあるのですが、その意味がよく分かりません、宜しくお願いします。

 Target(ターゲット)、Make(メーク)、Build(ビルド)とはどのような意味で、それぞれどのような違いがあるのでしょうか。
 compile(コンパイル)、linker(リンカ)ならわかるのですが。

Aベストアンサー

EclipseのCDTは使ったこと無いので、過去の経験からの推測ですが

Target
リリース版とかデバッグ版とか、対象OS等のプラットフォームとかでしょうか。

Make
変更のあったソースと依存関係のあるソースのみコンパイルする

Build
全ソースファイルをコンパイルする

QAVR回路製作

D社のDBR-5FYSという5KVAの発動発電機を入手しました。
回転界磁巻線が黒く焼けています。
AVR回路の故障によるものと思われます。
巻線は巻き替えが可能ですが、
AVR回路は、部品入手不可能でした。
半導体を使っているのでしょう金属の箱に樹脂でモールドしてあり、
修理も出来そうにありません。
多少大形になっても外付けすれば良いのでAVR回路を自作
あるいは他の発電機の部品の流用をしたいと考えています。

余談ですが、その昔はどんな方法で電圧調整をしていたのでしょうか。
古い自動車の充電装置の様にリレー接点を使用したものもあったのでしょうか。

Aベストアンサー

発電機、AVRの概略説明は下記が参考になると思われます。
http://nippon.zaidan.info/seikabutsu/2002/00395/mokuji.htm
平成14年度 初級講習用指導書(電気機器編)
2・1・5 自動電圧調整器

AVRを購入されるのでしたら次はいかがでしょうか
http://www.seikosha-mfg.co.jp/scl/sclin.html
精工社の実験実習機器

(いずれもインターネットからサーチしたものです。その他にも色々あるようです) 

QJava言語のプログラムをC言語にする場合

次の2つのJava言語のプログラムをC言語にしたいのですが、C言語でプログラムを書いたことがありません。C言語にする場合はどう書けばいいのでしょうか?

import java.io.*;

public class Sort {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("整数値を入力してください");
String line = reader.readLine();
int a = Integer.parseInt(line);

String line2 = reader.readLine();
int b = Integer.parseInt(line2);

String line3 = reader.readLine();
int c = Integer.parseInt(line3);

String line4 = reader.readLine();
int d = Integer.parseInt(line4);

int[] data = {a, b, c, d};

for (int i = 0; i< data.length - 1 ; i++) {
for (int j = i + 1; j< data.length; j++) {
if(data[i] > data[j]) {
int e = data[i];
data[i] = data[j];
data[j] = e;
}
}
}

System.out.println("昇順に並べ替えると、");
for (int i = 0; i< data.length; i++) {
System.out.print(data[i] + " ");
}

System.out.println("です。");

} catch (IOException e){
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("数式の形式が正しくありません。");
}
}
}



import java.io.*;

public class Yakusu {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("2つの整数値を入力してください");
System.out.print("整数A : ");
String line = reader.readLine();
int a = Integer.parseInt(line);

System.out.print("整数B : ");
String line2 = reader.readLine();
int b = Integer.parseInt(line2);

if(a%b == 0){
System.out.println("BはAの約数です");
} else {
System.out.println("BはAの約数ではありません");
}

} catch (IOException e){
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("数式の形式が正しくありません。");

}
}
}

次の2つのJava言語のプログラムをC言語にしたいのですが、C言語でプログラムを書いたことがありません。C言語にする場合はどう書けばいいのでしょうか?

import java.io.*;

public class Sort {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("整数値を入力してください");
String line = reader.readLine();
int a = Integer.parseInt(line);

String line2 = reader.readLine();
int b = Integer.parseI...続きを読む

Aベストアンサー

半角スペース2個を全角スペース1個に置換しています。

#include <stdio.h>

int main(void) {
 int a,b,c,d;
 printf("整数値を入力してください\n");
 scanf("%d",&a);
 scanf("%d",&b);
 scanf("%d",&c);
 scanf("%d",&d);

 int data[] = {a,b,c,d};
 int length = 4;
 int i,j,e;

 for (i = 0; i< length - 1 ; i++) {
  for (j = i + 1; j< length; j++) {
   if(data[i] > data[j]) {
    e = data[i];
    data[i] = data[j];
    data[j] = e;
   }
  }
 }

 printf("昇順に並べ替えると、");

 for (i = 0; i< length; i++) {
  printf("%d ",data[i]);
 }

 printf("です。\n");
}


#include <stdio.h>

int main(void) {
 int a,b;
 printf("2つの整数値を入力してください\n");
 printf("整数A : ");
 scanf("%d",&a);
 printf("整数B : ");
 scanf("%d",&b);

 if(a%b == 0){
  printf("BはAの約数です\n");
 } else {
  printf("BはAの約数ではありません\n");
 }
}

半角スペース2個を全角スペース1個に置換しています。

#include <stdio.h>

int main(void) {
 int a,b,c,d;
 printf("整数値を入力してください\n");
 scanf("%d",&a);
 scanf("%d",&b);
 scanf("%d",&c);
 scanf("%d",&d);

 int data[] = {a,b,c,d};
 int length = 4;
 int i,j,e;

 for (i = 0; i< length - 1 ; i++) {
  for (j = i + 1; j< length; j++) {
   if(data[i] > data[j]) {
    e = data[i];
    data[i] = data[j];
    data[j] = e;
   }
  }
 }

 print...続きを読む

QAVRマイコン ビルドエラー

AVRマイコンを
#include <avr/io.h>

int main(void)
{
DDRD =0b11111111;
PORTD=0b11111111;
}
で、ビルドしようとしているのですが、
../test3.c:0: error: MCU `atmega88p' supported for assembler only
と、その後に
../test3.c:5: error: `DDRD' undeclared (first use in this function)
等と、エラーが出てビルド出来ません。

どうすればいいのでしょうか?
回答お願いします。

Aベストアンサー

> ../test3.c:0: error: MCU `atmega88p' supported for assembler only

このメッセージからすると「CコンパイラがATmega88p をサポートしていない」というエラーに見受けられます。

私の手元の環境(AVR Studio 4.18/WinAVR 20100110)では、質問者さんの挙げられたコードは、「Device:atmega88p」で作成したプロジェクトで問題無くコンパイルできましたので、
質問者さんの使われているWinAVR のバージョンが古いということはないでしょうか。

QC言語のプログラムでコンパイルができない原因が分かりません。

C言語初心者です。
下記は、有限要素法のモデルを作成するためのプログラムですが、コンパイルができず悩んでいます。
どなたか原因を教えていただけないでしょうか??

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>

/*節点情報格納用構造体*/
typedef struct GRID_tag
{
int gid; /*節点ID*/
double x;
double y;
}GRID;

typedef struct GRID_ST_tag
{
int num;
GRID *g;
}GRID_ST;

/*要素情報格納用構造体*/
typedef struct ELEM_tag
{
int eid; /*要素ID*/
}ELEM;

typedef struct ELEM_ST_tag
{
int num;
ELEM *e;
}ELEM_ST;

main()
{
FILE *fp;
FILE *fileW;
char filename[256]="input2.txt";
char buf[256];
char *pt;
int i,j,pos,num0;
double lengthX;
double lengthY;
int numX,numY,numE;
double x0,y0;
GRID_ST *g;
GRID_ST *grid;
ELEM_ST *e;
ELEM_ST *el;
ELEM_ST *elem;

printf("ファイル名を入力してください\n");
scanf("%s" , filename);

if((fp = fopen(filename,"r")) == NULL){
fprintf(stderr,"指定されたファイルを開けません。\n");
exit(-1);
}
pos = 0;
while(fgets(buf,sizeof(buf),fp)){
if(strncmp(buf,"**",2)==0) continue;
pos++;
}
rewind(fp);

num0=pos;

/*情報処理ファイルの読み込み*/
while(fgets(buf,sizeof(buf),fp)){
if(strncmp(buf,"*X",2)==0){
if(strncmp(buf,"**",2)==0) continue;
if(buf[0]=='*') goto NEXT;
lengthX = atof(buf);
pt = strtok(buf,",");
numX = atof(buf);
} else if(strncmp(buf,"*Y",2)==0){
while(fgets(buf,sizeof(buf),fp)){
if(strncmp(buf,"**",2)==0) continue;
if(buf[0]=='*') goto NEXT;
lengthY = atof(buf);
pt = strtok(buf,",");
numY = atof(buf);
}

x0 = 0;
y0 = 0;

/*最内層節点作成*/
grid[0].g = (GRID *)calloc(numY+1, sizeof(GRID));
for(i=0; i<numY; i++){
grid[0].g[i].gid = i+1;

grid[0].g[i].x = 0;
grid[0].g[i].y = i*lengthY/numY;

}

/*全節点領域の確保とデータ作成*/
for(i=1; i<numX; i++){
grid[i].g = (GRID *)calloc(numY, sizeof(GRID));
for(j=0; j<numY; j++){
grid[i].g[j].gid = 1000*i+j+1;
grid[i].g[j].x = i * lengthX/numX;
grid[i].g[j].y = grid[0].g[j].y;
}
}


numE = numX * numY;

/*節点格納領域の確保とデータ作成*/
for(i=1; i<numX+1; i++){
elem[i].e = (ELEM *)calloc(numY, sizeof(ELEM));
for(j=0; j<numY; j++){
elem[i].e[j].eid = 1000*i+j;
}
}

/*節点情報の出力*/
fileW = fopen("output.txt","w");
fprintf(fileW,"*NODE, NSET=CFRP, SYSTEM=R\n");
for(i=0;i<numY;i++){
for(j=0;j<numX;j++){
fprintf(fileW,"%8d, %lf, %lf\n",grid[i].g[j].gid, grid[i].g[j].x, grid[i].g[j].y);

}
}
/*要素情報の出力*/
fprintf(fileW,"*ELEMENT, TYPE=CAX4\n");
for(i=1;i<numX;i++){
for(j=0;j<numY;j++){
fprintf(fileW,"%8d, %lf, %lf, %lf, %lf\n", elem[i].e[j].eid, grid[i].g[j].gid, grid[i+1].g[j].gid, grid[i+1].g[j+1].gid, grid[i].g[j+1].gid);

}
}
fclose(fileW);
fclose(fp);
return(0);
}

C言語初心者です。
下記は、有限要素法のモデルを作成するためのプログラムですが、コンパイルができず悩んでいます。
どなたか原因を教えていただけないでしょうか??

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>

/*節点情報格納用構造体*/
typedef struct GRID_tag
{
int gid; /*節点ID*/
double x;
double y;
}GRID;

typedef struct GRID_ST_tag
{
int num;
GRID *g;
}GRID_ST;

/*要素情報格納用構造体*/...続きを読む

Aベストアンサー

goto NEXT; の行き先がないですよ。

QAVR SPI mkiiの修理窓口

Atmelのマイコンを使ってプログラミングなどをしております。現在持っているAVR SPI mkiiという書き込み機を使っているのですが、ここ最近これをPCとUSBで接続しても認識しなくなりマイコンに書き込みができなくなってしまいました。


このAVR SPI mkiiは5年くらい前に秋葉原で購入したものです。この書き込み機の修理依頼などをATMELの窓口などご存じの方いらっしゃいませんでしょうか?

どうぞ、ご教授の程よろしくお願い致します。

Aベストアンサー

AVR SPI mkiiじゃなくて、AVR ISP mkIIですよね?
だとしたら、修理窓口なんて日本国内には無いっぽいので、修理するよりも同じ製品を買い直した方が良いかと。
英語力に自信があるのなら製造元に連絡して修理を依頼することも可能だと思いますが、送料と修理費用を考えればどう考えても新品を買った方が安いですしね。
新品を買う場合は下記などからどうぞ。


http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=7DBK-S7LE

Qvisual c++ C言語のプログラムを作る方法

プログラミングについては学校で習っているのですが,
学校ではterapadとteratermを使っています。
しかしいざteratermを落として使い方を調べるとノーパソ一台ではどうしようもないとわかりました。
なので最初から入っていたvisual c++を使おうと思いました。

しかし学校で組んだプログラムをそのままこれで組んでも、
「error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません」
と出ました。
正直使い方もよく知らないため、??状態でよくわかりませんでした。
これはどうすればいいのでしょうか?

ちなみに上のエラーがでた行は、

main(int co, char *ma[3]){

と書いてあります。

Aベストアンサー

情報少ないですね。
でも、単純に考えると、mainの戻り値の型がわからないからコンパイラが困惑しているのでは?

例えば、以下のように、「main」の前に「int」をつけてみたら?

int main(int co, char *ma[3]){

  ※「int co, 」も不要な気が・・・・


人気Q&Aランキング