일정 신호 조합기에 적혀있는 숫자중 빨간색을 이진수로 펼쳐보면
00010000001000000100000010000001이 되는데
다른 색들의 값까지 다 더해서 색 입혀보면
11111111111111111111111111111111 이 됨
램프는 저중에서 저 파란 구간을 읽어서 각자 자기 위치에 맞는 색을 내게 만드는거야
구현 방법은 간단함 각 램프에 0000001, 0000010, 0000100, ..., 1000000이라고 값을 부여해주고 각 자리수에 대해서 둘 다 1인지를 검사하면 한가지 색만을 뽑아오게 됨
그걸 하는게 각 조명에 달려있는 AND연산 조합기의 역할
근데 여기서 멈추면 반짝이지가 않겠지
그래서 왼쪽의 값을 오른쪽으로 밀어주는게 비트 시프트(>>)연산을 하는 조합기의 역할
A신호 올리는건 설명 생략
쓰고 보니깐 진작에 이해했을놈들만 이해할 설명을 한거같은데 비트연산도 설명해야하나
추가
0eNrdmd1umzAYhu/F0o5GNvwPOajUace7gamKCHUba/zJmGxRxQXsLnZtu5LZRA10lMautlrKQauS2q/x8/AFsB/AtuhEo2SlwfoByLyuWrD++gBaeV9lhf1MHxoB1kBqUYIIVFlpjzIl9a4UWuarvC63ssp0rUAfAVndih9gDfubCIhKSy3FMXA4OGyqrtwKZRqcotoyK4pVkZWNiW/q1nSpKzuwjcEfaAQO5o8P1ISbs9OqLjZbscv20gxoWuVS5Z3UG/O/21PXO6lavZnNYS+V7swn49hDi5XYC3XQO1ndg+Morc4skNgelE2mhtmtwe+fv2yDrhVmuKJWZmZadeLYpxK5Hb6140H7614JUU3nLm/NRMzEH0/ZHqP+pu/7aMYHufGhF8cHu/HBbnzIxfEhbnyIGx9+cXyoGx/qxoddHB/mxoe58Ukvjg9348Pd+CQXxydx45OceVSYoXq8kvACpzFmRNW+gtUnS6AVNmMzkjJ35boRhtNwQuC96VZ3uun8gnsfks+AjACyzZW4nWGPn7Yenq9cYuGCn9TXD4RBBfGngt79W0EOxCd+ni8M5Abe5nqSjwOQd+50bTtN1Xz872pmlRM9NZG+WEqpoyfo7Qm/kSeR5TuXb7HrL59f4eKY7vVV9ve1PzNC5sxfrKUlJ8jbCQrjxK/mptKurt7GWepeRE4vsovOsLczGrqOSKg6mtVJ9OLD+7k6Wno4g8TbCQntBIVyAs84wX5O8JIT6u2EB7/fsFBS2BkpiZ8UsiSFeUthoaUkoZzgM06onxO65IR7O0lDO2HB7iiehcCWoHu/z5+WPoJBx8FuGfRMJXA/KXxJyvgS/zhrt4dhsrgadScLLdTCFtASIvuSNeR1w42ax5SkEMHJZlDkkXZEMOZRAuM0QQSd8pBXnt3gmsTBOEEwZSQhpzzslXcQRVF/nySuEMQx5QSj5BRJvCIbWX2bBGKcwISR+JRGvdLyQzblxzjDHCVjGvNKu56e2BjCh2v2lWspy6tXz6+imNbD9uN6slsZgb25UIeLGyWQ8BRxRs0P5H3/B3so6zw=
음..어.. 2진수라서 숫자가 저런거군요 A % 7은 램프 색이 7개라서 그런거같고.. 그리고 >> 이것도 찾아보니 비프 시프트인가 있더군요 그런데 램프가 미친듯이 점멸하는건 어떻게 해야할지 모르겠네요 설명을 봐도.. 영 ㅋㅋㅋㅋㅋ
혹시 이것때문일까요 그 노란색 상수값이 음수로 이상하게 되어있던데..
ㄴㄴ 음수는 이상한게 아님 그 값이 맞아 램프 속도 조절하는 회로도 달아서 이 글에 다시 올림
아.. 그럼 제가 이해를 아직 못한게 맞나보네요 근데 이런 회로같은거 쉽게 이해하려면 뭘 배워야 하나요? 프로그래밍쪽인거같은데
회로는...프로그래밍이 도움이 되긴 할텐데 회로 배우려고 배운다는걸 무진장 신경쓰면서 배워야 좀 도움이 될거야
일정신호조합기에 달려있던 A값을 높이면 램프 속도 내려가고 낮추면 램프속도 빨라짐
B신호를 틱 연산으로 만들고, B신호를 A로 나누는데 이때 A의 값을 속도로 생각하고 정하면 되는군여 1초가 60틱이니까 A가 20이면 1초당 3번 저기서 램프신호가 7개니까 나머지 연산으로 7해주면 7이되고 비프 시프트로 오른쪽으로 순환되게 한다 2진수는 봐도 도저히 모르겠는데 이정도면 괜찮게 이해했을까요
나머지연산을 걸어주는 이유는 시프트연산만 이용해서 램프를 무한정 순환시킬 수 없기 때문임
https://en.wikipedia.org/wiki/Bitwise_operation
비트
시프트 연산은 값을 회전시키는 부류랑 남는 자리를 0이나 1로 채우는 부류가 있는데 팩토리오는 후자거든
그래서 시프트 연산에 너무 큰 값을 써버리면 0만 남게되니까 적당한 시점에서 시프트에 사용하는 값을 0으로 되돌려야 할 필요가 있음
회로 수정 한번 더 했어
오 완벽하네요 잘 갖고 놀겠습니다 회로는 진짜 다른 영역이긴하네요..
흰색은 어케 띄우나 한참 고민했는데 걍 조건을 빨간별(모두)!=0 해서 강제로 켜지게 한거구나
정답은 가까이에...
쉬프트 어짜피 1~7까지만 와리가게 할꺼면 00010000001000000100000010000001까지 할것 없이 상수로 10000001, 100000010, 1000000100..., 10000001000000 만 설정해도 될것같은데 맞지?
뭐 그렇지
맨 처음 설계할때 뇌 비우고 하느라 그냥 크게 잡음
ㅋㅋㅋ
근데 지금 발견한게 새로 올린 회로가 주기적으로 발작하는데 이게 왜이러는걸까 나눗셈에서 생기는 문제같은데
아 선 꼬였구나
A가 되먹임으로 들어갔네 ㅋㅋ
A가 아니라 B가 되먹임이군
오..
어질하네요