[AVRStudio4]Printf 사용하기

AVR Studio 4.19기준 상부의 “Project”메뉴에서 “Configration Options”를 선택해 Project Option 진입 후 아래와 같은 절차로 설정해주면 Printf 함수를 사용할 수 있음. libprintf_flt.a 를 Link with These에 추가 Link Options에 아래 옵션 추가 -Wl,-u,vfprintf -lprintf_flt -lm

 

[Codevision]송수신 인터럽트를 이용한 RS485 제어

RS485를 제어하려면 Receive, Drive Enable Pin을 제어해야 합니다. Polling 방식이나 제어주기에 제약이 없는 상황에서는 문제가 없지만 능동적인 제어일때는 여러가지 문제가 발생합니다 따라서 인터럽트를 이용해 송수신을 하면  delay함수를 쓰지 않고도 제어할 수 있어 효율적인  송,수신을 할 수 있습니다. ※ 485 드라이버를 2개 사용해서 송 수신 라인이 다르게 설계했다면 해당 내용은 유효하지 않습니다. 예제는 USART3으로 되어있으니 참고하시기 …

Continue reading ‘[Codevision]송수신 인터럽트를 이용한 RS485 제어’ »

[Codevision] printf 함수 usart0, 1, 2, 3 으로 임의 변경해서 쓰기.

printf() 함수는 디버깅에 아주 유용하게 쓰이고 있다.  하지만 기존설정은 USART0에 고정되어 있어 제약이 생겨 이를 변경할 경우가 생기는데 이 때 유용한 방법이다. “CodeVisionAVR User Manual”에 해당내용이 있어 발췌해 왔다. #define _ALTERNATE_PUTCHAR_ #define _ALTERNATE_GETCHAR_ 기존 printf에서 사용하는 putchar(),getchar()함수 기능을 교체하는것이 핵심이다. 따라서. putchar(),getchar() 함수를 다시 지정하여 USARTx에 사용 가능하도록 하는 것이다. USART1에 사용하도록 설정한 예제니 참고하기 바란다. …

Continue reading ‘[Codevision] printf 함수 usart0, 1, 2, 3 으로 임의 변경해서 쓰기.’ »

[ETC]Sys Tick

SysTick? STM32F051R8T6은 다양한 기능을 가진 타이머가 8개가 존재하며 이것들은 서로 독립적으로 동작을 한다. 일단 FND 제어때 쓰려고 하는 것인 만큼  설명이 필요한 타이머에 대한 포스팅은 일단 나중에 하기로 하고 간단하게 사용할 수 있는 24비트 타이머를 알아보자.   SysTick 타이머의 장점은 STK_RVR(SysTick_LOAD, 0xE000E014)에 클럭 소스를 입력 하면 STK_CVR(SysTick_VAL, 0xE000E018)이 다운카운터로 동작하고 “0”이되면 STK_CSR.B16(STK_CTRL 의 16비트 자리, 0x00010000)가 “1”이 …

Continue reading ‘[ETC]Sys Tick’ »

[FND제어]Chapter 1

FND (Flexible Numberic Display) 는 보통 Dynamic Display 방법으로 제어한다. 착시현상을 이용한 것인데 이 부분을 동영상으로 설명했으니 동영상을 먼저 확인하고 다음 설명으로 넘어가겠다. 동영상에서 관찰되는 것 처럼 FND 제어에서 Dinamic 방식의 핵심은 바로 시간차다. 1000의자리를 먼저 출력하고 1ms 후에 100의자리 표시, 또 1ms 후 10의 자리 표시, 또 1ms 후 1의 자리 총 5ms 이내의  빠른 …

Continue reading ‘[FND제어]Chapter 1’ »

[LED제어]Chapter 5

   

       

[LED제어]Chapter 4

 

       

[LED제어]Chapter 3

Chapter 2에서 GPIO_Digitial_Output() 함수에 대해서 간단히 설명을 했는데 Chapter 2는  논리합 연산으로 사용하고 싶은 Port를 선택할 수 있었다. 이번엔 16비트 중 하위 8bit를 Out Port로 지정하는 방법으로 설정하였다. 반대로 상위 8bit롤 Out Port로 지정하기 위해서는 _GPIO_PINMAS_HIGH, 전부 Out Port로 사용하기 위해서는  _GPIO_PINMAS_ALL  이런식의 지정하여 사용할 수 있다. 해당 소스를 Downloader 하면 LED의 교차동작을 확인할 수 있다.