logo

한국어

게시판






조회 수 365 추천 수 0 댓글 11
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

스크린샷 2020-07-22 오전 9.17.02.png

오랜만에 C코딩을 하려니까... 

 

한번 랜덤으로 생성한 int 값을 RGB HEX 로 변환하여 출력하는 기능을 구상했으나..

형변환부터 막혀서...

 

결국 이런 형태로 구현하고 말았어요.

더 잘 짤 수 있을 텐데... 이부분은 C에 대해 다시 공부해야 할 거 같네요.

C 문자열 처리 어려워요..ㅠㅠ

 

어쨌든 잘 돌아갑니다.

 

이 매크로를 매핑하면...

 

#1045A5

#BD9678

#153ED5

#5394BA

#C3120E

#C168D1

#F41E9D

#60971F

#3AEF0C

#45A8B0

#92E265

#2CFDF8

 

이런식으로 RGB HEX 값이 랜덤으로 생성되어 출력됩니다..

 

 

랜덤 컬러라.. 딱히 쓸대가 있을것 같지는 않지만...

심심풀이로는 괜찮네요.. 

 

Who's 콩바구니

profile

moon3.gif

세진키보드 (92년 구입. 모델명 모름. 아마도 기계식 이였을듯...)

잘 생각이 안나지만 어쩄든 멤브레인 키보드들. (1년주기로 교채...마지막 멤브레인은 LG의 X같은 키보드.)

HHKB pro2 

Cherry G84 4100

realforce 87u 10th 균등

목각 하우징 커스텀키보드 (체리 구청축)

Apple Standard Keyboard 

Planck keyboard (체리 백축 클릭)

Preonic  (체리 백축 클릭)

Preonic  (애플 오렌지 알프스, Apple Standard Keyboard  뽀각.)

Massdrop Preonic rev 2 (체리 백축 클릭)

Let's Split (실패)

Massdrop Planck rev 6.1 (카일 박스 오랜지축)

 

Corne (카일 보라축)

Corne (카일 low profile 갈축)

Kyria (카일 low profile 갈축)

  • profile
    EveR™ 2020.07.22 13:06

    프로그래밍 개발 잘하시는 분들 보면 그저 부러울 따름입니다. ㅠ

  • profile
    ALPS 2020.07.22 16:22

    아주 간단한 방법으로는

    char 배열로 만들어서 인덱스를 넘기면 스트링으로 넘기도록 하고,

    스위치 케이스문을 지우고

    함수 하나만 넘겨주면 됩니다.

    SEND_STRING(convertString[r]);
    보통은 저렇게 숫자 -> 스트링으로 변환하는 경우 컨버트 함수를 만들거나 라이브러리 이용하면 됩니다.

  • ?
    whyj 2020.07.22 22:08

    format 쓰시는게..

  • ?
    fsttt204 2020.07.23 07:20
    c에서 저거 포멧팅 시키는 방법만 알면 쉽게 갔을거 같은데 검색 실력이 딸려서 찾질 못하겠네요.
    그런데 위의 랜덤 6번 쓰는 것보단 2번으로 줄이고 0xffffff로 mod 걸어서 그 값으로 처리하는게 mcu한테 덜 부담스럽지 않을까 생각이 들긴 합니다.
  • ?
    TTFF 2020.07.23 11:44 Files첨부 (2)

    1.PNG

     

    2.PNG

     

    이정도면 되지 않을까용..?

  • profile

    스크린샷 2020-07-23 오후 12.16.54.png

    스크린샷 2020-07-23 오후 12.17.08.png

     

    참고해서 적용해봤습니다.

    일단 OLED display 에 출력은 잘 되는군요... 

     

    그런데 생성한 문자열을 직접 키보드 입력으로 보내는게 안됩니다..

    SEND_STRING() 이 char* 를 바로 받지 않아서요..

    스크린샷 2020-07-23 오후 12.41.47.png

     

    결국 생성한 문자열 값에 따라 다시 스위치문을 돌려서 입력명령을 실행해야 입력이 됩니다.

    rand() 호출이 한번에 6번에서 1번으로 줄었으니.. 조금 더 가벼워진 코드라고 할 수 있겠습니다.

     

    그런데 출력 결과는 R값이 계속 0으로 나옵니다..

    avr 프로세서에서 rand() 로 출력되는 값의 범위가 충분히 크지 않은 것 같습니다.

    #0041a7

    #003af1

    #002cd9

    #000c2a

    #003782

    #005ac8

    #000ed8

    #0009fe

    #002f43

     

    스크린샷 2020-07-23 오후 1.07.39.png

    그래서 결국 이렇게 되네요. 랜덤 한번 더 돌렸습니다.

     

    #1abaf4

    #cdbc2a

    #785acd

    #ed89fe

    #f4544d

    이 상태로는 키보드를 처음 부팅하고 나서 처음 나오는 컬러가 항상 #1abaf4 입니다. 두번쨰는 #cdbc2a 지요.

    srand(time(NULL)); 이 적용이 되지 않아서 그렇습니다.

    avr 에서는 컴파일 에러가 나더군요.... 이리저리 고민하다가..

    스크린샷 2020-07-23 오후 1.28.39.png

    이렇게 구현해봅니다.

     

    저 randomSeed 는.. OLED의 display를 갱신하는 부분에서  1씩 증가하게끔 처리했습니다.

    스크린샷 2020-07-23 오후 1.31.38.png

    #d2a4d9

    #4e3e29

    #723932

    #36f5e3

    #b039d2

    #826eac

    #a71f14 

     

    잘 작동합니다.

    매번 다른 hex값이 나옵니다.

  • ?
    TTFF 2020.07.23 13:55
    avr상에서는 엄청 까다로운 문제가 되버리네요..
    많이 배웠습니다. 감사합니다!
  • ?
    fsttt204 2020.07.23 14:38

    역시 이런 문제엔 개발자들이 많이들...

    RAND_MAX 값이 32767 밖에 되지 않아서 하나로 처리가 안되죠.

    그런데 민간한 사람 아니면

    char[] temp = {0, };

    sprintf(temp, "%03x", a);

    sprintf(RGB_HEX, "#%c%c%c%c%c%c", temp[0], temp[0], temp[1], temp[1], temp[2], temp[2]);

    로도 되지 않을까 생각은 했는데 대신 코드가 더러워지네요.

     

  • ?
    TTFF 2020.07.23 15:27 Files첨부 (1)

    안녕하세용!
    짚어주신 내용 살펴보니

    RAND_MAX값이 2^15 밖에 안되는 걸 확인했습니다!

     

     

    그래서 곰곰히 생각해보니.. 아래 솔루션이 생각이 났는데

    혹시 잘못 된 접근 방법인지 조언해주실 수 있으신가요?

     

    캡처.PNG

  • ?
    fsttt204 2020.07.23 16:37

    제가 한 것은 랜덤 함수를 한번만 호출해서 rgb를 각각 16단계. 15x16x16으로만 나눠서 처리한 것이라...

    랜덤을 딱 한번만 불러서 처리하게 한것입니다.

    어짜피 사람 눈이라는게 매우 예민하지 않으면 굳이 255x255x255가지 할필요는 없으니까요.

    그리고 avr 자체 성능이 낮으니 될수 있으면 랜덤 같은 깊은 계산 함수? 를 덜 호출하려는게 목표였구요.

     

    전 그냥 일반 개발자라... 판단할 처지가 안되지만...

    위의 코드는 솔직히 콩바구니님이 댓글로 코드 짠 부분이 쉬프트 계산을 안하기 때문에 연산 효율이 더 좋다고 봅니다.

  • profile
    콩바구니 2020.07.23 15:31

    대충 이런식으로 놀 수 있습니다. ㅎㅎ


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 2022년 7월 1일부로 회원 정리 안내 12 아침에™⇔N² 2022.06.09 3704
공지 키보드랩 이용규정 아침에™⇔N² 2021.11.22 3882
공지 [공제/공구] 가격/품목 등 정보 61 철혈마제 2015.03.09 36799
공지 키보드랩 사용주의사항. 11 duck0113 2014.06.03 40771
4128 마르스프로 풀튜닝제품 구매후 다시한번 간이윤활했어요 3 GonE 2018.05.31 283
4127 출책보상이 왜 줄어들었을까요...ㅜ 4 도줌공해 2018.07.23 283
4126 드디어 계급장이 바꼈습니다~!! 21 슬우 2018.11.18 284
4125 내년엔 더 멋진 모습으로 찾아뵙겠습니다. 4 file 열반너바나 2024.01.01 285
4124 이번주 토요일에 혹시 시간 되는 성남분들 계신가요?(장소 시간 안내) 24 마리네 2018.06.26 285
4123 GMK Regendable+ CR 20, WS1 20 지름 file Kiruas 2022.09.10 285
4122 미루고 미뤘던 닉시 구매 6 file Kiruas 2023.05.06 285
4121 설렁설렁...올해안에 카라나 탑슬해볼까 합니다.. 1 개굴 2020.11.19 287
4120 안녕하세요. 가입인사 드립니다. 6 coffee 2018.02.18 288
4119 가끔 댓글달 때 '내용값은 필수입니다' 라고 에러메세지.. 1 고펑 2018.04.03 288
4118 660c 저소음 참 좋네요 2 file ㅇ아느아 2019.04.18 288
4117 체리mx board 3.0s 입고예정이라고 합니다 바이퍼 2020.04.17 289
4116 사용 후기 // AK87 화이트 (카일 스피드 다크그레이) 3 file KitCat 2018.07.29 290
4115 해피해킹에 해피해킹 라이트 러버돔을 이식해보았는데 8 치크 2019.04.27 291
4114 KP아저씨 로얄알파 수령했다고하네요(업뎃) 7 산류 2018.06.19 291
4113 DIY KIT 키보드 3 wwermmlk 2019.02.14 292
4112 어떤 키보드가 필요하고 언제 키보드를 구매해야하나 한동안 고민했습니다. 3 KitCat 2018.07.25 292
4111 Marvo KG935 오테뮤 적축 4 xDeliciouSx 2018.04.08 294
4110 보통 텐키 키보드 사용하실때 쉼표(,)는 어떻게 사용하십니까? 1 쌍둥아범 2020.09.08 294
4109 xt규격 키보드 한점 컨버팅 했어요. 4 file 허드 2020.06.01 295
목록
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 216 Next
/ 216