버튼 두 개 다 올리면 프로그램 전송
둘 다 내리면 통신용
온습도 센서 , RTC(리얼 타임 클럭) 제어
칩드라이브 프로그래밍을할 예정
DDRA = 1<<0|1<<1|1<<2; //전체 불 켜기
[Zigbex]를 사용하기 위해 설정해 놓은 AVR studio설치
드라이버 잡기.
makefile은 F_CPU=7372800으로 설정하기.(1초당 클락발생)
[LED 불 깜빡이기]
#define PORTA (*(volatile unsigned int *)0x3B) //입출력설정
#define DDRA (*(volatile unsigned int *)0x3A) //출력설정
#define PINA (*(volatile unsigned int *)0x39)
void delay_us(unsigned char time_us);
void delay_ms(unsigned int time_ms);
int main(void)
{
DDRA = 0b11111111;
PORTA = 0b00000000;
while(1)
{
delay_ms(100);
PORTA = 0b00000110;
delay_ms(100);
PORTA = 0b00000101;
delay_ms(100);
PORTA = 0b00000011;
}
}
void delay_us(unsigned char time_us)
{
register unsigned char i;
for ( i =0 ; i< time_us ;i++)
{
asm volatile (" PUSH R0 ");
asm volatile (" POP R0 ");
asm volatile (" PUSH R0 ");
asm volatile (" POP R0 ");
asm volatile (" PUSH R0 ");
asm volatile (" POP R0 ");
asm volatile (" PUSH R0 ");
asm volatile (" POP R0 ");
}
}
void delay_ms(unsigned int time_ms)
{
register unsigned int i;
for ( i=0 ; i < time_ms ; i++)
{
delay_us(250);
delay_us(250);
delay_us(250);
delay_us(250);
}
}
'About 프로그래밍!!! > ATmega128' 카테고리의 다른 글
[ATmega128] 두더지잡기 프로젝트. (0) | 2010.07.23 |
---|---|
[ATmega128] 문자열 보내는 함수 구현. (0) | 2010.07.20 |
[ATmega128] 양방향 직렬통신 (0) | 2010.07.20 |
[ATmega128] 아트메가랑 PC랑 통신하기2 (0) | 2010.07.20 |
[ATmega128] 아트메가랑 PC랑 통신하기1 (0) | 2010.07.20 |