라즈베리파이에서 C 로 입력디바이스를 프로그래밍 하다보니 멀티쓰레드 문제가 생기네요.
예를들어
ADC 모듈을 연결하여 ADC도 하고 GPIO를 통하여 로터리 엔코더 값도 읽다보니
각각을 c로 짜서 각각 동시에 동작시키면 (2개의 프로세스로 각각 실행) 잘 동작하는데 둘을 하나의 소스코드 합쳐서 하나의 프로세스로 합치면 논리상 문제가 생기네요.
보통 하나의 while 루프 속에서 각각의 모듈에 대하여 조건에 따른 대기를 하는 구성이다 보니 둘을 동시에 돌리면 한놈 때문에 다른 한놈도 같이 놀게 되는 상황이라..
오랜만에 C 를 짜다 보니.. 멀티 쓰레드가 지원 되었던가? 가물가물... C** 로 코드를 바꿔야 겠군....
라즈베리파이 파이썬도 잘 되어 있는 것 같은데 파이썬 배워서 파이썬으로... ???
라즈베리파이에서 주변장치 여러개의 입력을 처리하려면 멀티쓰레드로 코딩하는 것이 맞는 접근 방법인가요?
만약 멀티쓰레드로 가는게 맞다면 C++ 이 좋을까요? 파이썬이 좋을까요??
...
¾¾¿¡¼µµ ¸ÖƼ¾²·¹µùÀº ÃæºÐÈ÷ °¡´ÉÇÕ´Ï´Ù. Á» ÁöÀúºÐÇÒ »ÓÀÌÁö Çö´ëÀûÀÎ(?) º´·Ä ÇÁ·Î±×·¡¹Ö ÃæºÐÈ÷ °¡´ÉÇØ¿ä.
ÁöÀúºÐÇÑ Äڵ尡 ½ÈÀ¸½Ã¸é ¾¾ÇÃÇÃÀ̳ª ÀÚ¹Ù·¯ °¡¼Å¾ß°ÚÁÒ.
ÆÄÀ̽㠸ÖƼ¾²·¹µù °ü·Ã ±ÛÀ» °Ë»öÁß¿¡ ¾óÇÍ º»µíÇÏ¿© ÀϹÝÀûÀÎ °ÍÀ̶ó »ý°¢Çߴµ¥ ¾Æ´Ñ°¡ º¸±º¿ä.
C ¸ÖƼ¾²·¹µùÀÌ ÀÖ³ªº¸±º¿ä. ¸ÖƼ¾²·¹µùÀº C++ ÇÏ¸é¼ Á¢Çß´ø °ÍÀ̶ó ´ç¿¬È÷ C ¿¡´Â ¾ø°ÚÁö Ç߳׿ä ^^
p.s. ¾Æ.. ±×·¯°í º¸´Ï c ·Î µÈ °£´ÜÇÑ tcpip äÆà ¼¹ö ¿¹Á¦¸¦ º¸¸é bind ÈÄ¿¡ Ŭ¶óÀ̾ðÆ® Á¢¼ÓÀÌ ¿À¸é µû·Î ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ ¸¸µé¾î »© ÁÖ´Â ÇüÅ°¡ ÀÖ¾ú³×¿ä.
pthread »ç¿ëÇÏ½Ã¸é µÉ °Í °°½À´Ï´Ù.
ÀÌÀü¿¡ ÀåºñÇÁ·Î±×·¥ ©¶§... Àåºñ 5°³¿¡¼ µ¥ÀÌÅÍ ¹Þ¾Æ¼ ¼ÒÄÏÀ¸·Î Àü¼ÛÇÏ´Â ºÎºÐÀ» pthread·Î ´ø °É·Î ±â¾ïÇÕ´Ï´Ù.
pthread ·Î ÇÏ¸é µÇ´Â °Å±º¿ä.
p.s. pthread ·Î ¸¸µé¾î »©ÁÖ´Ï °£´ÜÇÏ°Ô ÇØ°áµË´Ï´Ù. ^^
°Ë»öÇؼ º¸´Ù º¸´Ï.. ¿ØÁö Äí´Ù °°Àº GPU ¿¬»êµéÀÌ ÂÊ¿¡¼ ¹ßÀüÇØ ³ª°£ °Å ¾Æ´Ò±î »ý°¢ÀÌ µì´Ï´Ù.