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 -
   39   40   41   42   43   44   45   46   47   48   49