ATmega128 컴파일 오류 질문
페이지 정보
작성자 master 작성일19-12-25 21:15 조회4,551회 댓글0건본문
Q)
여기서 두번째줄 #include <iom128.h>와 세번째줄 #include <ina90.h>
에러가 뜨네요; 에러를 없에주세요;; 제힘으론 검색을 해봐두 해결이 안돼는군요 ㅠㅠ
여러분 도와주세요!
#include <avr/io.h>
#include <iom128.h> <에러1
#include <ina90.h> <에러2
#define BUZZER_Toggle (PORTA ^=0x80)
#define TESTBIT(ADRESS,BIT) (ADRESS&(1<<BIT))
void InitMCP (void);
void Auto_buzzer2(void); // LED 자동연주
void Auto_buzzer1(void); // BUZZER 자동 연주
void LDelay(unsigned int Dly); // 짧은 딜레이 설정
void Setup_sensor(void); // 거리측정센서 입출력 결정
void Init_Sw(void); // 스위치 입출력 제어
void SDelay(unsigned int Dly); // 긴 딜레이 설정
void Buzzer(unsigned int times); // Buzzer 구동 함수
void DO(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(956);
}
}
void RE(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(851);
}
}
void MI(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(758);
}
}
void FA(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(716);
}
}
void SO(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(639);
}
}
void RA(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(568);
}
}
void SI(unsigned int times) //시
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(507);
}
}
// ---------------------------- ‘학교 종이 땡땡땡’ 자동 연주
void Auto_buzzer1(void)
{
PORTC = 0x00;
LDelay(5);
PORTC = 0xFF;
LDelay(5);
PORTC = 0x00;
LDelay(5);
PORTC = 0xFF;
LDelay(5);
PORTC = 0x00;
LDelay(5);
PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(800); PORTC = 0xFB; LDelay(6); PORTC = 0xFF;
LDelay(5);
// --- 솔 솔 라 라 솔 솔 미 ~~~
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
RE(1000); PORTC = 0xFD; LDelay(6); PORTC = 0xFF;
LDelay(5);
// --- 솔 솔 미 미 레 ~~~
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(800); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(10);
// --- 솔 솔 라 라 솔 솔 미 ~~~
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
RE(500); PORTC = 0xFD; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
DO(1000); PORTC = 0xFE; LDelay(3); PORTC = 0xFF;
LDelay(5);
}
// --- 솔 미 레 미 도 ~~~
void Buzzer(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(250);
}
}
void SDelay(unsigned int Dly)
{
while(Dly--);
}
void InitMCP(void)
{
MCUCR = 0x00; // 외무 메모리 Enable
}
void Init_Sw(void)
{
DDRD = 0xFC; // 스위치 입력 포트
DDRC = 0xFF;
PORTD = 0xFF;
PORTC = 0xFF;
}
void Setup_sensor(void)
{
DDRB = 0x00;
PORTB = 0xFF;
}
//--------------- ‘퐁당퐁당’ led 자동 연주
void Auto_buzzer2(void)
{
DO(800);
LDelay(5);
RE(800);
LDelay(5);
MI(800);
LDelay(5);
MI(1000);
LDelay(5);
DO(800);
LDelay(5);
MI(800);
LDelay(5);
SO(500);
LDelay(5);
RA(500);
LDelay(5);
SO(800);
LDelay(5);
//-------------------도 레 미 미 도 미 솔 라 솔
DO(800);
LDelay(5);
RE(800);
LDelay(5);
MI(800);
LDelay(5);
MI(1000);
LDelay(5);
DO(800);
LDelay(5);
MI(800);
LDelay(5);
SO(500);
LDelay(5);
RA(500);
LDelay(5);
SO(800);
LDelay(5);
//-------------------도 레 미 미 도 미 솔 라 솔
RA(1000);
LDelay(7);
SO(800);
LDelay(5);
MI(500);
LDelay(7);
RA(1000);
LDelay(7);
SO(800);
LDelay(5);
MI(500);
LDelay(7);
// --------------------라 솔 미 라 솔 미
RE(800);
LDelay(5);
RE(800);
LDelay(5);
DO(800);
LDelay(5);
RE(800);
LDelay(5);
MI(800);
LDelay(5);
SO(800);
LDelay(5);
SO(1000);
LDelay(5);
//--------------레 레 도 레 미 솔 솔
RA(1000);
LDelay(5);
RA(300);
LDelay(5);
SO(800);
LDelay(5);
RA(700);
LDelay(5);
SI(700);
LDelay(5);
SI(700);
LDelay(5);
SI(700);
LDelay(5);
//-------------라 라 솔 라 시 시 시
SO(900);
LDelay(5);
SO(500);
LDelay(5);
MI(800);
LDelay(5);
RE(800);
LDelay(5);
DO(1000);
LDelay(10);
//-------솔 솔 미 레 도
RE(1000);
LDelay(5);
RE(500);
LDelay(5);
DO(800);
LDelay(5);
MI(800);
LDelay(5);
SO(800);
LDelay(5);
SO(800);
LDelay(5);
SO(1000);
LDelay(10);
//------레 미 도 미 솔 솔 솔
RE(1000);
LDelay(5);
MI(500);
LDelay(5);
FA(800);
LDelay(5);
MI(800);
LDelay(5);
RE(800);
LDelay(5);
DO(1000);
LDelay(5);
// ------------ 레 미 파 미 레 도
}
void LDelay(unsigned int Dly)
{
unsigned int i;
double dd;
for ( i=0; i<Dly ; i++ )
for (dd=0.;dd<100. ;dd+=0.1 );
}//end LDelay
void main(void) << 워링 1
{
void Setup_sensor();
void InitMCP();
Init_Sw();
while(1)
{
if (PIND == 0xFE) Auto_buzzer2();
if (PIND == 0xFD) Auto_buzzer1();
if (PINB == 0xFE) PORTC = 0xFE, DO(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xFD) PORTC = 0xFD, RE(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xFB) PORTC = 0xFB, MI(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xF7) PORTC = 0xF7, FA(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xEF) PORTC = 0xEF, SO(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xDF) PORTC = 0xDF, RA(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xBF) PORTC = 0xBF, SI(1000), LDelay(10), PORTC = 0xFF;
}//end while
}//end main
avr-gcc -mmcu=atmega128 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 123.o -MF dep/123.o.d -c ../123.c
../123.c:2:20: error: iom128.h: No such file or directory
../123.c:3:19: error: ina90.h: No such file or directory
../123.c:306: warning: return type of 'main' is not 'int'
make: *** [123.o] Error 1
Build failed with 2 errors and 1 warnings...
부탁드립니다 ㅠ
//
A)
AVRStudio 소스가 아니라서 발생 하는 오류입니다.
#include <avr/io.h>
#include <avr/interrupt.h>
//#include <iom128.h> <에러1
//#include <ina90.h> <에러2
#define BUZZER_Toggle (PORTA ^=0x80)
#define TESTBIT(ADRESS,BIT) (ADRESS&(1<<BIT))
void InitMCP (void);
void Auto_buzzer2(void); // LED 자동연주
void Auto_buzzer1(void); // BUZZER 자동 연주
void LDelay(unsigned int Dly); // 짧은 딜레이 설정
void Setup_sensor(void); // 거리측정센서 입출력 결정
void Init_Sw(void); // 스위치 입출력 제어
void SDelay(unsigned int Dly); // 긴 딜레이 설정
void Buzzer(unsigned int times); // Buzzer 구동 함수
void DO(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(956);
}
}
void RE(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(851);
}
}
void MI(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(758);
}
}
void FA(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(716);
}
}
void SO(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(639);
}
}
void RA(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(568);
}
}
void SI(unsigned int times) //시
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(507);
}
}
// ---------------------------- ‘학교 종이 땡땡땡’ 자동 연주
void Auto_buzzer1(void)
{
PORTC = 0x00;
LDelay(5);
PORTC = 0xFF;
LDelay(5);
PORTC = 0x00;
LDelay(5);
PORTC = 0xFF;
LDelay(5);
PORTC = 0x00;
LDelay(5);
PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(800); PORTC = 0xFB; LDelay(6); PORTC = 0xFF;
LDelay(5);
// --- 솔 솔 라 라 솔 솔 미 ~~~
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
RE(1000); PORTC = 0xFD; LDelay(6); PORTC = 0xFF;
LDelay(5);
// --- 솔 솔 미 미 레 ~~~
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
RA(500); PORTC = 0xDF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(800); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(10);
// --- 솔 솔 라 라 솔 솔 미 ~~~
SO(500); PORTC = 0xEF; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
RE(500); PORTC = 0xFD; LDelay(3); PORTC = 0xFF;
LDelay(5);
MI(500); PORTC = 0xFB; LDelay(3); PORTC = 0xFF;
LDelay(5);
DO(1000); PORTC = 0xFE; LDelay(3); PORTC = 0xFF;
LDelay(5);
}
// --- 솔 미 레 미 도 ~~~
void Buzzer(unsigned int times)
{
unsigned int i;
for (i=0 ; i<times; i++)
{
BUZZER_Toggle;
SDelay(250);
}
}
void SDelay(unsigned int Dly)
{
while(Dly--);
}
void InitMCP(void)
{
MCUCR = 0x00; // 외무 메모리 Enable
}
void Init_Sw(void)
{
DDRD = 0xFC; // 스위치 입력 포트
DDRC = 0xFF;
PORTD = 0xFF;
PORTC = 0xFF;
}
void Setup_sensor(void)
{
DDRB = 0x00;
PORTB = 0xFF;
}
//--------------- ‘퐁당퐁당’ led 자동 연주
void Auto_buzzer2(void)
{
DO(800);
LDelay(5);
RE(800);
LDelay(5);
MI(800);
LDelay(5);
MI(1000);
LDelay(5);
DO(800);
LDelay(5);
MI(800);
LDelay(5);
SO(500);
LDelay(5);
RA(500);
LDelay(5);
SO(800);
LDelay(5);
//-------------------도 레 미 미 도 미 솔 라 솔
DO(800);
LDelay(5);
RE(800);
LDelay(5);
MI(800);
LDelay(5);
MI(1000);
LDelay(5);
DO(800);
LDelay(5);
MI(800);
LDelay(5);
SO(500);
LDelay(5);
RA(500);
LDelay(5);
SO(800);
LDelay(5);
//-------------------도 레 미 미 도 미 솔 라 솔
RA(1000);
LDelay(7);
SO(800);
LDelay(5);
MI(500);
LDelay(7);
RA(1000);
LDelay(7);
SO(800);
LDelay(5);
MI(500);
LDelay(7);
// --------------------라 솔 미 라 솔 미
RE(800);
LDelay(5);
RE(800);
LDelay(5);
DO(800);
LDelay(5);
RE(800);
LDelay(5);
MI(800);
LDelay(5);
SO(800);
LDelay(5);
SO(1000);
LDelay(5);
//--------------레 레 도 레 미 솔 솔
RA(1000);
LDelay(5);
RA(300);
LDelay(5);
SO(800);
LDelay(5);
RA(700);
LDelay(5);
SI(700);
LDelay(5);
SI(700);
LDelay(5);
SI(700);
LDelay(5);
//-------------라 라 솔 라 시 시 시
SO(900);
LDelay(5);
SO(500);
LDelay(5);
MI(800);
LDelay(5);
RE(800);
LDelay(5);
DO(1000);
LDelay(10);
//-------솔 솔 미 레 도
RE(1000);
LDelay(5);
RE(500);
LDelay(5);
DO(800);
LDelay(5);
MI(800);
LDelay(5);
SO(800);
LDelay(5);
SO(800);
LDelay(5);
SO(1000);
LDelay(10);
//------레 미 도 미 솔 솔 솔
RE(1000);
LDelay(5);
MI(500);
LDelay(5);
FA(800);
LDelay(5);
MI(800);
LDelay(5);
RE(800);
LDelay(5);
DO(1000);
LDelay(5);
// ------------ 레 미 파 미 레 도
}
void LDelay(unsigned int Dly)
{
unsigned int i;
double dd;
for ( i=0; i<Dly ; i++ )
for (dd=0.;dd<100. ;dd+=0.1 );
}//end LDelay
int main(void)
//void main(void) << 워링 1
{
void Setup_sensor();
void InitMCP();
Init_Sw();
while(1)
{
if (PIND == 0xFE) Auto_buzzer2();
if (PIND == 0xFD) Auto_buzzer1();
if (PINB == 0xFE) PORTC = 0xFE, DO(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xFD) PORTC = 0xFD, RE(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xFB) PORTC = 0xFB, MI(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xF7) PORTC = 0xF7, FA(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xEF) PORTC = 0xEF, SO(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xDF) PORTC = 0xDF, RA(1000), LDelay(10), PORTC = 0xFF;
if (PINB == 0xBF) PORTC = 0xBF, SI(1000), LDelay(10), PORTC = 0xFF;
}//end while
}//end main
코드비젼/ AVR EDIT/ ICC/ AVRSTUDIO/ IAR/ 컴파일러 변경시 참조 (전자공작) |작성자 키트
위 글도 참고 해서 보시고
스위치 8개 피아노 | | | AVR |
http://cafe.naver.com/circuitsmanual/14320
이 소스도 구경 하세요
컴파일러 다르지만 hex 파일이 올려져 있으니 테스트 하는 것은 어렵지 않을 겁니다.
댓글 : 0
조회수 : 4,551
등록된 댓글이 없습니다.