아트메가 128을 배우고 있는 학생입니다.
코딩을 코드비전으로 짯습니다.
근데 학교에서는 IAR 짜라고 하네요;;
잘몰라서 그러는데 밑에 쓴 코딩이 IAR에서 에러가 안날려면 어떻게 해야하나요;;
제발 도와주세요;;
#include <mega128.h>
#include <delay.h>
#define FUNCSET 0X28
#define ENTMODE 0X06
#define ALLCLR 0X01
#define DISPON 0X0C
#define LINE2 0XC0
void LCD_init(void);
void LCD_String(char flash *);
void Busy(void);
void Command(unsigned char);
void Data(unsigned char);
void main(void)
{
LCD_init();
LCD_String("Hello!! KUT-128");
Command(LINE2);
LCD_String("Atmel ATmega128");
while (1);
}
void LCD_init(void)
{
DDRC = 0xFF;
PORTC &= 0xFB;
delay_ms(15);
Command(0x20);
delay_ms(5);
Command(0x20);
delay_us(100);
Command(0x20);
Command(FUNCSET);
Command(DISPON);
Command(ALLCLR);
Command(ENTMODE);
}
void LCD_String(char flash *str)
{
char flash *pStr=0;
pStr = str;
while(*pStr) Data(*pStr++);
}
void Command(unsigned char byte)
{
Busy();
PORTC = (byte & 0xF0);
PORTC &= 0xFE;
PORTC &= 0XFD;
delay_us(1);
PORTC |= 0X04;
delay_us(1);
PORTC &= 0XFB;
/////////////////////////
PORTC = ((byte<<4) & 0xF0);
PORTC &= 0xFE;
PORTC &= 0XFD;
delay_us(1);
PORTC |= 0X04;
delay_us(1);
PORTC &= 0XFB;
}
void Data(unsigned char byte)
{
Busy();
PORTC = (byte & 0xF0);
PORTC |= 0x01;
PORTC &= 0XFD;
delay_us(1);
PORTC |= 0X04;
delay_us(1);
PORTC &= 0XFB;
////////////////
PORTC = ((byte<<4) & 0xF0);
PORTC |= 0x01;
PORTC &= 0XFD;
delay_us(1);
PORTC |= 0X04;
delay_us(1);
PORTC &= 0XFB;
}
void Busy(void)
{
delay_ms(2);
}
프로젝트 생성 옵션을 맞게 하셨는지 다시 한번 보셔요