외부 버튼을 사용하여 일부 컨트롤을 수행하는 것은 너무 멋진 일이지만 이벤트 중단에 대한 지식이 종종 필요합니다. 이 섹션에서는 다른 라이브러리에서 몇 가지 예를 제공합니다. 아래 예제에서는 GPIO0에 연결된 스위치를 푸시할 때 콘솔에 메시지를 인쇄하는 프로그램을 보여 주며, 이 프로그램은 다음과 같습니다. 프로그램 실행을 통해 처리기를 등록 취소해야 하는 상황의 예를 들어 보겠습니다. (그렇지 않으면 프로그램이 있을 때 "등록취소"입니다.) 배선PiISR () 기능을 재생하는 동안 나는 isr.c 예를 살펴했다. 디지털Write() 함수를 사용하는 것이 더 쉬울 수 있습니다. 시퀀서 예제에 대 한 예제 디렉토리에서 blink12.c를 참조 하십시오. 이 함수는 PI_THREAD 선언을 사용하여 이전에 선언한 프로그램의 다른 함수인 스레드를 만듭니다. 이 함수는 기본 프로그램과 동시에 실행됩니다. 예를 들어 프로그램이 다른 작업을 수행하는 동안 이 함수가 인터럽트를 기다리도록 하는 것이 좋습니다. 스레드는 전역 변수를 사용하여 주 프로그램 또는 다른 스레드와 다시 통신하여 이벤트 또는 작업을 나타낼 수 있습니다. 그런 다음 gpio 명령을 다시 실행하지 않고 컴파일 된 C 코드를 호출하면 첫 번째 시도에서 채널 1, 4 및 5를 볼 수 있습니다.
그런 다음 실행 을 다시 시작하면 어쩌면 그냥 채널 1, 내가 다시 시작하면, 아마도 그냥 채널 0. 매번 어떤 운율이나 효과가 있는지는 별로 보이지 않습니다. 이러한 함수를 사용하여 주 프로그램과 스레드 간에 데이터를 교환할 때 유효한 데이터를 얻을 수 있도록 해야 할 수 있습니다. 옴플렛 또는 무효입니다. 예제 디렉터리에서 wfi.c 프로그램을 참조하십시오. 멋진 라이브러리. 내가 가진 유일한 문제는 초기화 스크립트에 인터럽트를 등록 할 때 항상 거기에 머물지 않았다는 것입니다. 나는 기본적으로 당신의 isr.c 예를 사용하고 내 와이파이가 올 때 시작 된 시작 스크립트 (/ 등 / init / ISR)와 부팅에 시작했다 (그물 장치 업 IFACE = wlan0에서 시작). 프로그램은 항상 실행중이었지만(루프에 대한 무한) 인터럽트는 실제로 대부분의 부트업에 등록되지 않았습니다.
가끔씩 은은한 일이 있었지만 꽤 드물했습니다. 나는 등록을 10 초 지연시켜 주위를 얻었다. 해키의 종류하지만 그것은 일을 완료했다. 무엇이 실패의 원인이 었는지 확실하지 않습니다. 등록 실패에 대한 메시지를 전혀 받지 못했습니다. raspbmc를 사용하고 있습니다. 다시 말하지만, 도서관을 좋아하면 여기에 내 경험을 덤프 할 것이라고 생각했습니다. 이 예제에서는 적외선 센서가 라즈베리 파이에 연결 되는 프로젝트에 대 한 C 코드를 살펴보겠습니다. 이 프로그램은 적외선 센서가 적외선 빔에서 입력을 수신하는지 여부에 따라 문을 인쇄합니다. 좋아, 나는 자물쇠가 내 특별한 경우에 무정한 사실에 대해 같은 의견을 가지고있다. 그 외에도 질문은 일반적으로 일반 스레드 (및 main())에 의해 중단 될 수 있습니다 밀가루 ISR 남아있다.
그러나 예제에서 교착 상태 문제가 없기 때문에 분명히 :-)할 수 있습니다. 안녕하세요! 그리고 당신의 도움을 주셔서 감사합니다! pwmWrite 함수가 얼마나 오래 지속되는지 궁금했습니다. 예를 들어 PWM 레지스터에 쓰면 한 번의 웨이브 주기 후에 지워지나요? 또는 레지스터에 무언가를 다시 쓸 때까지 동일한 듀티 사이클을 계속 기록할 수 있습니까? 다시 한번 감사드립니다! 나는 다운로드하고 LCD 예제를 시도했다 - 큰 감사를 작동합니다. 그러나 나는 또한 당신이 shiftOut.h 헤더 파일을 가지고 있음을 발견했다. 나는 그것을 사용하려고했지만 작동할 수 없었다. 당신은 내가 어떻게 작동하는지 확인하기 위해 통해 plod 수있는 예제 프로그램을 가지고있다. 나는 74hc595 칩을 사용하여 보드를 구축했기 때문에 모든 준비가되어 있습니다!! 주요 차이점은 Arduino 시스템과 달리 프로그램의 주요 루프가 제공되지 않는다는 것입니다 . 이것은 종종 리눅스 시스템에서 어쨌든 명령줄 인수에 대 한 액세스를 제공할 수 있습니다.
Published by: gianni57
Comments are closed.