로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Arduino Open Source
아듀이노 함수의 상세설명
작성자 avrtools™        
작성일 2012/04/06
ㆍ추천: 0  ㆍ조회: 1469   
  직렬통신포트의 초기화
아듀이노에서 직렬통신포트의 초기화는 다음과같다.

void setup()
{
  Serial.begin(115200);   //직렬통신 포트를 115200 bps로 설정한다. 
  // 이제 부터 주함수에서 직렬포트로 송신, 수신이 가능하다.
}
 
void loop
{
  Serial.write(AAA);  // 변수 AAAr에 들어있는 값을 그대로 송신한다.
  Serial.write(AAA & 0xFF); // 변수 AAA에 들어있는 값의 하위바이트를 그대로 송신한다
  Serial.write((AAA >>8) & 0xFF); // 변수 AAA에 들어있는 값의 상위 바이트를 그대로 송신한다
  Serial.write(0x07); // 16진 0x07을 직렬포트로 송신한다. PC에서 띵(beep) 소리가 난다.
 
  Serial.print("표시할 문장");  // " "에 포함된 문자열을 ASCII로 송신한다.
  Serial.print(BBB, DEC); // 변수 BBB에 들어있는 값을 숫자 10진 ASCII로 송신한다.
  Serial.print(CCC, HEX); // 변수 BBB에 들어있는 값을 숫자 16진 ASCII로 송신한다.
   

  Serial.println("표시할 문장"); // " "에 포함된 문자열을 ASCII로 송신, 줄바꾸기(0x0D)를 송신한다. 
  Serial.println("  ");        // 빈칸(space)을 송신하고, 줄바꾸기(0x0D)를 송신한다.   
  Serial.println();            // 줄바꾸기 코드(0x0D)를 송신한다.


만일 특수한 포맷의 통신규격을 만들려면 별도로 초기화 함수를 만들어야 한다.
그러나 이후에 언제라도 아듀이노의 전용 직렬포트 초기화 함수인 Serial.begin(115200); 를 사용하면,
그땐 먼저 설정한 사용자 초기화 함수는 무효가 된다.
그뿐만 아니라, 송신, 수신의 버퍼와 가로채기도 아뉴이노 함수를 사용해야만 한다.

또한 먼저 아듀이노의 전용 직렬포트 초기화 함수를 사용하고 나서,
나중에 사용자 함수를 선언하면 그떈 아듀이노의 초기화 함수는 무효가 된다.
물론 송신, 수신 가로채기도 별도로 선언하고 처리함수를 만들어야 한다.

사용자 직렬통신 초기화 함수
void setup()
{
#define F_CPU 16000000 // 16MHz clock
#define DMX_BAUD 500000 // 원하는 bps 속도를 Hz 값으로 넣는다

UBRR0H =((F_CPU / (DMX_BAUD * 8L)) -1) >>8;
UBRR0L =((F_CPU / (DMX_BAUD * 8L)) -1);
UCSR0B |=(1 << RXEN0 | 1 << RXCIE0); // 가로채기 처리함수를 사용한다.
UCSR0C |=(1 <<USBS0); // 8 데이터 비트, 1 정지 비트, no 패리티


사용자 직렬통신 가로채기 처리함수
ISR (USART_RX_vect)
{
  unsigned char stat; // 상태를 읽는 변수
  unsigned char val; // 데이터를 읽는 변수

  stat =UCSR0A; // 먼저 status를 읽어야 한다, 나중에 읽으면 status가 변할 수도 있다 
  val =UDR0; // 나중에 데이터를 읽는다, .

  if (stat & (1 <<FE0)) return 0;  // 오류가 있으면 수신값을 0으로 만들고 주함수로 돌아간다. 
  else return val;    // 수신값을 제대로 가지고 주함수로 돌아간다.  
}


가로채기란 무었인가?
가로채기는 주함수가 실행되는 상태에서, 주함수는 가로채기를 전혀 신경쓰지 않고 자신의 함수만 실행하면,
직렬통신 데이터가 수신되거나, 일정한 시간이 되었을 때 타이머에서 가로채기를 사용하도록 초기화하면,
가로채기가 일어나는 상황이 되면, 자동으로 주함수를 정지하고 가로채기 처리함수를 실행하게 된다,
 
가로채기에서 처리한 수신 데이터나 시간경과 값들은 변수에 저장하고 주함수로 돌아 온다.
그러므로 가로채기 처리함수는 무한루프를 돌거나, 무한히 반복되는 구조를 사용하면,
가로채기 처리함수에서 주함수로 돌아오지 못하므로 주함수 처리가 정지된다. 

매우 정상적으로 가로채기 처리함수가 마무리되고, 주함수로 돌아온다면,,,
주함수는 적당한 순환위치에서 필요한 경우 가로채기에서 저장된 변수(시간 값이나, 수신된 데이터)를 처리한다.
 
이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA

 AVRTOOLS™
 
   
  0
9999
윗글 직렬포트에서 문자를 받아 숫자 int로 저장
    N         제목    글쓴이 작성일 조회 추천
판매상품의 사용설명서는 다른 자료실에,,, avrtools™ 2011/08/30 (화) 1461 0
23 LCD 문자표시 (신형) avrtools™ 2012/04/12 (목) 2102 0
22 아듀이노 멜로디 연주 avrtools™ 2008/08/22 (금) 3455 0
21 아듀이노 4비트 LCD (구형) avrtools™ 2008/09/02 (화) 4302 0
20 아듀이노 가변저항 avrtools™ 2008/08/26 (화) 3074 0
19 직렬 데이터 이동(shift) 출력 avrtools™ 2012/04/10 (화) 1712 0
18 디지털 신호의 펄스폭을 측정하는 함수 avrtools™ 2012/04/10 (화) 1974 0
17 EEPROM 읽기, 쓰기 함수 avrtools™ 2012/04/10 (화) 2281 0
16 변수의 크기 avrtools™ 2012/04/10 (화) 1613 0
15 플레시 메모리에 상수를 저장하고 읽는 함수 avrtools™ 2012/04/10 (화) 1897 0
14 소프트웨어 Serial 함수 avrtools™ 2012/04/10 (화) 1794 0
13 아듀이노 터치스위치 [3] avrtools™ 2008/08/11 (월) 4105 0
12 아듀이노 shiftOut avrtools™ 2008/09/10 (수) 3364 0
11 아듀이노 스위치와 LED점등 avrtools™ 2008/08/13 (수) 4635 0
10 아듀이노의 주파수 출력 함수 avrtools™ 2009/10/20 (화) 2737 0
9 One Button Switch Library avrtools™ 2012/03/09 (금) 1841 0
8 아듀이노 논리연산 avrtools™ 2008/08/26 (화) 3005 0
7 아듀이노 PS2 키보드 읽기 avrtools™ 2008/09/10 (수) 4072 0
6 아듀이노 가로채기 함수 avrtools™ 2008/08/23 (토) 3186 0
5 아듀이노 전용명령 avrtools™ 2008/09/16 (화) 3914 0
4 아듀이노 PWM 출력과 타이머1 전용명령 avrtools™ 2008/08/19 (화) 3562 0
3 8비트 포트의 단일비트 조작방법 avrtools™ 2010/10/30 (토) 2365 0
2 직렬포트에서 문자를 받아 숫자 int로 저장 avrtools™ 2012/04/08 (일) 1682 0
1 직렬통신포트의 초기화 avrtools™ 2012/04/06 (금) 1469 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0