Page 44 - 3-3
P. 44
IV. ATmega128A, android 소스코드 및 프로그 PORTA = 0x00;
램 설치 // 포트 A 입력 설정
1. ATmega128A 포트 할당 및 전체 소스 DDRA = 0x80;
#include <mega128.h> PORTB = 0x00;
DDRB = 0x00;
#include <delay.h> PORTC = 0x08;
DDRC= 0x0f;
#define Motor1 PORTC.0 PORTD = 0x00;
//PORTC 0 번을 Motor 1 이라 한다. DDRD = 0xf0;
#define Motor2 PORTC.1 PORTE = 0x00;
//PORTC 1 번을 Motor 1 이라 한다. DDRE = 0x00;
#define Motor3 PORTC.2 PORTF = 0x00;
//PORTC 2 번을 Motor 3 이라 한다. DDRF = 0b11000000;
#define Watermotor PORTC.3 SREG |= 0x80;
//PORTC 3 번을 Watermotor 라 한다. UCSR0A = 0x00;
#define Water_On PORTC.3=0 UCSR0B = 0x18;
// PORTC 3 번에 0 이 입력되는 상황을 UCSR0C = 0x06;
Water_ON 이라 한다. UBRR0H = 0x00;
#define Water_On PORTC.3=1 UBRR0L = 103;
// PORTC 3 번에 1 이 입력되는 상황을
Water_Off 이라 한다. UCSR1A = 0x00;
UCSR1B = 0x18;
unsigned char data = ''; UCSR1C = 0x06;
// char 데이터에 공백 UBRR1H = 0x00;
unsigned char uart_flag = 0; UBRR1L = 103;
// flag = 0
unsigned int waterlevel, levelsensor_1, }
levelsensor_2, levelsensor_3;
// 센서 값 저장변수 UNIC Usart_Rx(void)
{
unsigned char if ((UCSR0A & 0x80))
Abuff='',Bbuff='',Cbuff='',Wbuff=''; return UDR0;
else if((UCSR1A & 0x80))
return UDR1;
// 센서 값 전송 변수 else
unsigned char ham=0, swflag=0; return '*';
// sw 플래그 = 0 }
typedef unsigned char UNIC;
void TxChar(unsigned char chr)
// UART 송신 함수
{
void Initial() UDR0 = chr;
{ }
- 44 -