디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형들 급함!!능력을 보여주세요!

늅늅(58.103) 2011.02.15 20:51:20
조회 126 추천 0 댓글 3

이거 해석좀!!

// Target : M128
// Crystal: 16.000Mhz
#include <stdio.h>
#include <iom128v.h>
#include <macros.h>

char state;
char data;
char count;
char len_L,len_H;
char r_data[23];
char complete;

void port_init(void)
{
 PORTA = 0x00;
 DDRA  = 0x00;
 PORTB = 0x00;
 DDRB  = 0x00;
 PORTC = 0x00; //m103 output only
 DDRC  = 0x00;
 PORTD = 0x00;
 DDRD  = 0x00;
 PORTE = 0x00;
 DDRE  = 0x00;
 PORTF = 0x00;
 DDRF  = 0x00;
 PORTG = 0x00;
 DDRG  = 0x00;
}

//UART0 initialize
// desired baud rate: 19200
// actual: baud rate:19231 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
 UCSR0B = 0x00; //disable while setting baud rate
 UCSR0A = 0x00;
 UCSR0C = 0x06;
 UBRR0L = 0x33; //set baud rate lo
 UBRR0H = 0x00; //set baud rate hi
 UCSR0B = 0x18;
}

//UART1 initialize
// desired baud rate:57600
// actual baud rate:58824 (2.1%)
// char size: 8 bit
// parity: Disabled
void uart1_init(void)
{
 UCSR1B = 0x00; //disable while setting baud rate
 UCSR1A = 0x00;
 UCSR1C = 0x06;
 UBRR1L = 0x10; //set baud rate lo
 UBRR1H = 0x00; //set baud rate hi
 UCSR1B = 0x98;
}

#pragma interrupt_handler uart1_rx_isr:31
void uart1_rx_isr(void)
{
 //uart has received a character in UDR
 data=UDR1;
 
 if(state==4)
 {
  if(data==0x03)
 {
  state=0;
  count=0;
  complete=1;
 }
  
 }else if(state==3)
 {
  r_data[count]=data;
 count++;
 if(count==len_L)state=4;
   
 }else if(state==2)
 {
 len_H=data;
 state=3;
 }else if(state==1)
 {
 len_L=data;
 state=2;
 }else if(data==0x02)state=1;
 
}

//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 XDIV  = 0x00; //xtal divider
 XMCRA = 0x00; //external memory
 port_init();
 uart0_init();
 uart1_init();

 MCUCR = 0x00;
 EICRA = 0x00; //extended ext ints
 EICRB = 0x00; //extended ext ints
 EIMSK = 0x00;
 TIMSK = 0x00; //timer interrupt sources
 ETIMSK = 0x00; //extended timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialized
}

void delay_ms(unsigned int ms)
{
 unsigned int i;
 while(ms--)
 {
  i=2727;
  while(i--);
 }
}

void USART_Transmit( unsigned char data )
{
 /* Wait for empty transmit buffer */
 while ( !( UCSR1A & (1<<UDRE1)) );
 /* Put data into buffer, sends the data */
 UDR1 = data;
}

void check_ID(void)
{
 char i;
 char send[]={0x02,0x01,0x00,0x70,0x73,0x03};
 printf("Check ID.\\r\\n");

 for(i=0;i<6;i++)USART_Transmit(send[i]);
}

void Read_data(char addr)
{
 char i;
 char lrc=0x00;
 char send[]={0x02,0x02,0x00,0x71,0x00,0x00,0x03};
 send[4]=addr;
 printf("Read data.\\r\\n");

 for(i=0;i<7;i++)
 {
  if(i==5)send[5]=lrc;

  USART_Transmit(send[i]);
  lrc^=send[i];
 }
 
}
void Write_data(char addr, char *str)
{
 char i;
 char lrc=0x00;
 char send[]={0x02,0x12,0x00,0x72,0x00};
 send[4]=addr;

 printf("Write data.\\r\\n");

 for(i=0;i<5;i++)
 {
  USART_Transmit(send[i]);
  lrc^=send[i];
 }
 for(i=0;i<16;i++)
 {
  if(*str==NULL)USART_Transmit(0x00);
  else
  {
   USART_Transmit(*str);
   lrc^=*str;
   str++;

  }
 }
 USART_Transmit(lrc);
 USART_Transmit(0x03);
 
}

void init_var(void)
{
 data=0;
 len_L=len_H=0;
 state=0;
 complete=0;
 
}
void main(void)
{
 char i;
 char *str="Korea";
 init_var();
 init_devices();
 
 delay_ms(500);
 //check_ID();
 //Write_data(0x01, str);
 Write_data(0x01, "우리나라");
 delay_ms(3000);
 Read_data(0x01);

 while(1)
 {
  if(complete==1)
  {
   for(i=0;i<len_L;i++)
   {
    if(r_data[i]!=NULL)printf("%c",r_data[i]);
   }
   printf("\\r\\n");
   complete=0;
  }
 }
}

 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 외모와 달리 술 일절 못 마셔 가장 의외인 스타는? 운영자 24/07/01 - -
235191 실버윙님 정도 실력이면 중급 프로그래머 인가요? [1] 금호족기(61.75) 11.02.19 121 0
235190 C언어로 factorial 멀티 스레드 버젼이나 짜라 ㅇㅇ [2] 좍이(59.7) 11.02.19 117 0
235189 레임이 머냐 ? 레임이 머길래 그거 한방에 사라진거냐 ? [10] 김늅늅(218.153) 11.02.19 163 0
235188 누가더 아름다운 야겜을 만들어내는가로 대결을 해라. [2] ㅁㅁ(211.109) 11.02.19 90 0
235187 C카페 관련자들... [5] 골드골드닭(112.133) 11.02.19 132 0
235186 숏코딩은 사도야! [3] 좍이(59.7) 11.02.19 118 0
235185 아빢친다 밥처먹고오니까 [2] 김늅늅(218.153) 11.02.19 85 0
235184 윈7 32빗 램 2기가면 충분함? [5] 엄맛(116.127) 11.02.19 134 0
235183 이럴수가! 코드에서 엘레베스트 산 같은 위상이 느껴진다! [4] 좍이(59.7) 11.02.19 135 0
235182 이렇게 묻히지 말고 코딩대결 해보라능 ㅠㅜ [9] 쿄쿄(125.133) 11.02.19 152 0
235181 니들 이거보면 실버실버님이랑 싸울마음 없어질껄 [6] 꿀레(14.33) 11.02.19 138 0
235179 복습하자. while문은 for문보다 위대하다. [2] 좍이(59.7) 11.02.19 138 0
235178 실버윙님 여기서 이러고 계시는군요. [12] 연화갤로그로 이동합니다. 11.02.19 226 0
235177 잠이나 자 [3] ㅁㄴㅇ(121.182) 11.02.19 81 0
235176 원래 이 세계는 유식한척 하면 개까이게 되있어 [7] 좍이(59.7) 11.02.19 131 0
235175 프갤도 병.림퓍 돋는군요~ [4] 쿄쿄(125.133) 11.02.19 99 0
235174 애초에 말이 통하지가 않는사람이다 [29] ㅇㅇ(59.27) 11.02.19 231 0
235173 심심해서 c언어배우자 까페 가입해서 [2] 꿀레(14.33) 11.02.19 142 0
235172 어설프게 유식한척하다가 당함 [3] 할리의본링갤로그로 이동합니다. 11.02.19 99 0
235171 "C언어는 배우자" 카페 관련자들은 봅니다. [8] 좍이(59.7) 11.02.19 187 0
235168 형들 온라인 게임 소스 볼 수 있어? [2] 아씨발꿈(220.87) 11.02.19 109 0
235167 형들아 api에서 배경음악깔고 효과음도 내고싶은데... [3] 꿀레(14.33) 11.02.19 432 0
235166 고전짤 [2] 지나가는볍신(110.8) 11.02.19 101 0
235165 오늘자 프갤 허세류 종결 [12] ㅇㅇ(59.27) 11.02.19 188 0
235163 서울대에는 3대 바보 전설이있습니다.... [4] 장 발장갤로그로 이동합니다. 11.02.19 218 0
235162 시발 나도 프로그래머 고수가 되고싶다.png [8] ㅁㅇㅁ(211.117) 11.02.19 211 0
235161 여기에 해당되시는 분들이 프겔에 많다는데... [2] SODmaster갤로그로 이동합니다. 11.02.19 92 0
235160 1+2+3+4+5+6+7+8+9+10=55 다끝냄!!!ㅋㅋㅋ감사해요 [10] 장 발장갤로그로 이동합니다. 11.02.19 167 0
235159 횽들 나 컴파일러 만들고싶은데 [3] ?(180.69) 11.02.19 95 0
235157 오늘 첨들어와봤는데 좋다....컴퓨터 고수들 짱많은듯 [6] 장 발장갤로그로 이동합니다. 11.02.19 140 0
235156 C언어나 자바언어같은거 막 알아두면 게임같은거 만들수있어?? [1] 글리젠의요정갤로그로 이동합니다. 11.02.19 125 0
235155 시발 1시간째 프로그래밍중인데 1+2+...+10=55 어떻게 만듬?> [19] 상디(112.148) 11.02.19 177 0
235154 cyluss 형님 한번만 봐주세요 ㅠ [3] 대학생(203.232) 11.02.19 52 0
235153 오늘부터 공부해서 수능날사고한번칠꺼임 [4] 6자초과하면끝에..가표시된다는데레알임갤로그로 이동합니다. 11.02.19 77 0
235152 온라인게임에서는 충돌처리를 보통 어떤 방식을 쓸까요 [2] 할리의본링갤로그로 이동합니다. 11.02.19 115 0
235151 형들 C언어 배울려는데 어려워요??? [2] Mayu갤로그로 이동합니다. 11.02.19 90 0
235150 C언어 왜함? [4] ㅁㅇㅁ(211.117) 11.02.19 134 0
235149 안드로이드에서 오라클db자료를 빼올라는데.. [5] 대학생(203.232) 11.02.19 136 0
235148 안녕하세요, 거만하게 질문드리겠습니다. [11] SODmaster갤로그로 이동합니다. 11.02.19 115 0
235147 큐브리드 쓰는 사람 있어? [1] 큐브리드(59.2) 11.02.19 58 0
235146 [프로그래밍_갤러리 release]; [4] Mayu갤로그로 이동합니다. 11.02.19 78 0
235145 다들 처음엔 이런실수 하지않음? [16] 꿀레(14.33) 11.02.19 143 0
235144 class에서 두 객체간의 함수(relation)를 만드려는데 어떻게해? [9] 트럼프조커갤로그로 이동합니다. 11.02.19 90 0
235143 핰ㅋㅋㅋㅋㅋ어떡햌ㅋ 성공했엌ㅋㅋㅋㅋㅋㅋㅋㅋ [10] (183.104) 11.02.19 143 0
235142 횽들아 뭐가 잘못됬는지 좀 봐줘 ㅜㅜ [7] (183.104) 11.02.19 105 0
235141 책분양] 게임플밍 관심있는 사람있음?? [23] 홍홍홍(119.196) 11.02.19 198 0
235140 처음 vs2002~2010 쓰시는 분은 읽어요. [5] 할리의본링갤로그로 이동합니다. 11.02.19 102 0
235137 안녕하세요. 정중하게 질문드립니다 (리눅스 관련..) [25] 개밥바라기.갤로그로 이동합니다. 11.02.19 185 0
235136 행님들 도와줘요.ㅠ [4] 우왕굿뽕(123.199) 11.02.19 70 0
235135 이바보 그려봄. [15] new gay[max](183.105) 11.02.19 186 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2