극한의 아두이노 DIY생활 - 곡률측정기17

in kr-dev 커뮤니티2 years ago

안녕하세요 Jimae입니다.

어제는 일때문에 글을 못썻습니다. ㅠㅠ

오늘은 저번에 이어서 글을 써보도록 하겠습니다.

  String screenBuffer[LINE_LENGTH];

 if(selectLine > LINE_LENGTH && selectLine < 1) return;    // 1~4 사이 데이터

  
  for(unsigned char num1 = 0; num1 < LINE_LENGTH; num1++)
  {
    if((selectLine - 1) == num1) screenBuffer[num1] = '>' + Function[num1];    // selectLine 현재 배열의 주소값으로 계산 하기 때문에 -1
    else screenBuffer[num1] = ' ' + Function[num1];
  }



  if(screenNumber == 1 && selectLine >= 4) screenNumber = 2;
  else if(screenNumber == 2 && selectLine == 1) screenNumber = 1;
  else if(screenNumber == 2 && selectLine == 5) screenNumber = 3;
  else if(screenNumber == 3 && selectLine <= 2) screenNumber = 2; 

  if(screenNumber == 1) plusAdd = 0;
  else if(screenNumber == 2) plusAdd = 1;
  else plusAdd = 2;
  

  for(unsigned char num2 = 0; num2 < 3; num2++)
  {
     LCDScreen[num2] = screenBuffer[num2 + plusAdd];
  }

이 부분은 LCD의 쓸 데이터를 지정해 주는 부분입니다.

void LCDdrawing(void)
{
  lcd.setCursor(0, 0);
  lcd.print(Title);
  
  for(unsigned char num = 0; num < 3; num++)
  {
    lcd.setCursor(0, (num + 1));
    lcd.print(LCDScreen[num]);
  }
}

void LCDclear(void)
{
  for(unsigned char num = 0; num < 3; num++)
  {
    LCDScreen[num] = "                ";
  }
}

그다음에 이런 함수들을 불러서 LCD 화면에 글을 쓰게 됩니다.

LCD 화면 같은 경우는 중요한것이 지속적으로 화면을 전부 지우고 다시 그려줘야 합니다.

그런 이유가 데이터를 한번 LCD에 쓰게 되면 그데이터를 지우지 않는이상 계속 남을 것이고

움직이는 애니메이션을 표현을 하려면 그 데이터르를 지우고 다시써줘야 하기 때문입니다.

또한 일부만 지우게 되면 데이터가 엉뚱하게 남아 원치않는 그래픽이 찍히게 될수도 있죠.

그래서 왠만한 그래픽 알고리즘은 주기적으로 전부 지우고 다시 그리는 방식으로 보통 많이 사용합니다.

물론 전부 초기화 하고 다시그리는것은 문제가 있어서 일부분만 축소해서 다시 그리는 방식으로 자원 소모를 줄이는 방법도 쓰곤 합니다.

아무튼 LCD는 이런방식으로 구현되어 사용되어 집니다.

이상 여기까지 다들 좋은하루 되세요.

극한의 아두이노 DIY생활 - 곡률측정기1
극한의 아두이노 DIY생활 - 곡률측정기2
극한의 아두이노 DIY생활 - 곡률측정기3
극한의 아두이노 DIY생활 - 곡률측정기4
극한의 아두이노 DIY생활 - 곡률측정기5
극한의 아두이노 DIY생활 - 곡률측정기6
극한의 아두이노 DIY생활 - 곡률측정기7
극한의 아두이노 DIY생활 - 곡률측정기8
극한의 아두이노 DIY생활 - 곡률측정기9
극한의 아두이노 DIY생활 - 곡률측정기10
극한의 아두이노 DIY생활 - 곡률측정기11
극한의 아두이노 DIY생활 - 곡률측정기12
극한의 아두이노 DIY생활 - 곡률측정기13
극한의 아두이노 DIY생활 - 곡률측정기14
극한의 아두이노 DIY생활 - 곡률측정기15
극한의 아두이노 DIY생활 - 곡률측정기16

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.030
BTC 58679.35
ETH 3155.04
USDT 1.00
SBD 2.44