'2015/03/26'에 해당되는 글 2건

  1. 2015.03.26 ATmega128a를 활용한 데이터 송신
  2. 2015.03.26 PIC16F917 카운터 업&다운 코딩

스마트 컨트롤러 - ATmega128a를 활용한 데이터 송신

 

학습목표 - ATmega128a를 활용하여 데이터를 PC로 송신할 수 있다.

 

void USART0_TX( unsigned char ucData )

{

// Wait for empty transmit buffer

while ( !( UCSR0A & (1<<UDRE)) );

// Put data into buffer, sends the data

UDRE= ucData;

}

 

Datasheet에 나와 있는 다음의 소스코드를 분석해 보자.

 

UDREn은 버퍼가 비어 있을 때 1이고, 버퍼가 차 있을 때 0이다.

 

위의 while문 안의 조건 UCSR0A0B00010011이고 1<<UDRE(5)0B00010000이다.

즉 버터가 차 있을 때 0을 전송하게 되면 위의 연산의 결과 값은 0이 된다. 여기에 '!'부정이 더해져 1이 되면 루프가 진행된다. 때문에 shift register에 데이터가 전송되지 않는다.

 

//Polling방식: CPU가 한 가지 명령어를 지속적으로 수행하여 다른 일은 할 수 없는 방식

LCD.c

LCD.h

Main.c

UART.c

 

 

UART.h

 

짜잔 결과값!





반응형
Posted by newind2000

디지털 제어 - PIC16F917 카운터 업&다운 코딩

 

학습목표 - PIC16F917의 데이터시트를 보고 카운트 업, 카운트 다운을 출력하는 코딩을 할 수 있다.

 

PIC16F917의 데이터시트 중 Memory 부분을 살펴보자.

 




위의 메모리 주소 값을 참조하여 A0를 누르는 동안 count up, A1을 누르는 동안 count down 사용하여 코딩해보자!




 

LM016L LCD를 활용하여 LCD에 숫자를 출력해 보자. To be continue...



반응형
Posted by newind2000