일련

Z

zhi_yi

Guest
안녕하세요, ATMEGA8535에 방해하는 방법을 직렬 인터페이스를 좀 도와 줘요, 나도 어떻게 비동기 전송 모드의 baudrate 설정하는 데 어려움이있어.나는 그것의 데이터 시트가 UBRR (12 비트)를 읽어 UBRRH (4 비트) 및 UBRRL (8 비트)을 포함하고있습니다.그리고 프로그램을 구축, 그리고 만약 내가되기 위해 9600 baudrate 싶지는 UBRR "25", "25"을 의미합니까해야한다고 말했다 ICC가 AVR의 애플 리케이션 빌더를 사용하고 있습니까?UBRRH 및 UBRRL으로 할당하는 방법?그리고 난, 모드를 사용하려면 어떤 프로그램을 방해 일련 예로는 어떤 것이 있습니까?시간 내주셔서 감사합니다 많이는 아니에요.

 
이것은 당신을 위해 도움이
될 수도있습니다.USART 그리고이 문서의 170 페이지를
참조미안하지만, 당신이 첨부 파일을보기 위해서는 로그인이 필요

 
감사합니다 ckshivaram,

btw,
난 당신이 업로드된 데이터 읽어 봤습니다.당신이 날 경우 그 다음 AVR PC에 ()가 반향을받은 데이터를 다시 보낼 것이 PC에서 데이터를 받게하는 프로그램을 만들고 싶어 내가 뭘해야 단계별로 안내 주실 수 있으십니까?나는 거기에 내 하드웨어를 연결 잘못된 속삭임 점검.그리고 내가 사용하는 프로그램을 만들려고하는데 ICC AVR, 여기의 코드입니다 :

인용구 :/ /하는데 ICC - AVR 애플 리케이션 빌더 : 2008년 5월 23일 오전 11시 6분 9초

/ / 대상 : M8535

/ / 크리스탈 : 4.0000Mhz# 포함 <iom8535v.h>

# 포함 <macros.h>무효 port_init (무효)

(

PORTA = 0x00;

DDRA = 0x00;

PORTB = 0x00;

DDRB = 0x00;

PORTC = 0x00;

DDRC = 0x00;

PORTD = 0x00;

DDRD = 0x00;

)/ / UART0 초기화

/ / 원하는 전송 속도 : 9600

/ / 실제 전송 속도 : 9615 (0.2 %)

무효 uart0_init (무효)

(

전송 속도를 설정하는 동안 UCSRB = 0x00; / / 해제

UCSRA = 0x00;

UCSRC = 비트 (URSEL) | 0x06;

UBRRL = 0x19; / / 전송 속도 설정 싸다

UBRRH = 0x00; / / 전송 속도 설정, 안녕

UCSRB = 0x18;

)/ /이 모든 주변 기기를 초기화하는 루틴을 호출할

무효 init_devices (무효)

(

/ /를 설정 멈출 때까지 수행자 인터럽트

는 CLI (); / / 해제 모든 인터럽트

port_init ();

uart0_init ();MCUCR = 0x00;

GICR = 0x00;

TIMSK = 0x00; / / 타이머 소스를 방해

SEI (); / / 다시 - 활성화 인터럽트

/ / 모든 주변 기기를 지금 초기화됩니다

)/ *와 * 기능 읽기 쓰기 /

서명 숯불 ReceiveByte (무효)

(

동안 (! (UCSRA & (1 <<RXC))); / 수신되는 데이터에 대한 * 잠깐 * /

반환 UDR; / * 돌아가기 데이터 * /

)무효 TransmitByte (서명 숯불 데이터)

(

(! (UCSRA & (1 <<UDRE))) 전송 비어; / * 잠깐 동안 버퍼 * /

UDR = 데이터; / * 시작 전송 * /

)주요 무효 ()

(

init_devices ();

(1) 동안

(

* 에코 TransmitByte (ReceiveByte ()); / * 문자 수신 /

)

)

 
안녕;의 출력 점점 안에 대한 합당한 이유는 당신을, 그리고 RXCafter 수술 깃발 UDRE 청소되지 않습니다.만약 그것을 한 다음 다시 데이터를받지 못할 것입니다.그래서 당신은 루프의 깃발 = 0; 그것은 컨트롤러에 의해서만 이루어집니다 생각하게 나올 때마다.

작은 사무실에서,이 때마다 난 내 직장에서 지루해질 들여다 것입 바쁜.곧 솔루션을 제공할 것입니다.

그나 저나 자네는 크리스탈을 사용하고있습니다.그것은 문제를 해결할 것입니다 사용 11.0592Mhz.
수표와 하드웨어 흐름으로 구성되어있다면 어디에 출력을보고있는 하이퍼 터미널의 설정이 제대로 구성되었는지 "none"으로.

이 시도하고 알려주시기 바랍니다.

 
헤이만큼 나도 알아, 크리스털 주파수 데이터 전송에 오류를 만들 수 있지만 거기에 대한 오류의 테이블을 찾을 수있을 것입 데이터 읽기를 시도, 정말 기억이 안 해요.

당신을 위해 하나의 정보가 컴퓨터와 함께 사용하는 경우
리눅스 운영 체제 (윈도우 OS에 대해서 알고 싶지 않아) RS
- 232를 통해 연결 USART 당신은 우리 자신에 의해 baudrate uc 설정할 수 있지만, 컴퓨터를 측면에 19200 bps에서해야합니다 (저기 더 좋은 설명을 왜 그런식으로해야합니다).

행운을 빌어요 확인, 데이터 읽기 및 UBRR 오류에 대한 지불을 유지 atention 잊지 마세요.
<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top