인터럽트 후 시작으로 이동?

I

ipunished

Guest
내가 언제 인터럽트가 남은 곳으로 마이크로 컨트롤러를 반환 발생하는 것으로 알고 있습니다 .. 하지만 내 방해 내가 다 막아주기를 바라 iterrupt 후 정지 스위치, 즉 구성되어 있습니다 .. 내 코드는 한동안 모터 (1) 루프 실행으로 구성되어 ... 하드웨어 인터럽트는 그것은 모든 것을 중단해야 누르면 후에 다시 시작할 때까지 기다리는 버튼을 누를 수 .. 내가 ISR 내에서 시작 버튼 함수를 호출 생각하지만, 그것은이 uncleared 스택 떠날 것이다. 어떤 방법이 주위를 얻으려면?
 
당신의 코드 도식하면 될텐데 ... 또한 당신은 하드웨어 인터럽트 그것은 모든 것을 중단해야 누르면 후에 언급, 그게 당신이 그 자체에만 모터를 해제하거나 설정되어 컨트롤러를 원하는 뜻 ... 당신은 전체 시스템 [컨트롤러를 너무] 원하시면 해제 한 솔루션을 줄 수 ... 이것은 작은 하드웨어 회로를 넣어 할 수 있습니다 ... 또는 게이트 [74HC1G32] 및 부하 스위치 [FPF2100]을 사용하여 당신이 하나를 얻을 수 있습니다 .. OR 게이트는 [A와 B] B는 푸시 버튼이 연결되어 있어야이 입력을 가지고 [하나 끝 OR 게이트와 다른 쪽 끝을 입력로 이동합니다 버튼을 함께 VCC로 이동 저항 풀다운]를하고는 컨트롤러의 출력의 GPIO에 연결된 가야 또는 게이트 [Y]가 [저항 풀다운와]를 FPF2100의의 [핀 세번째]를 연결해야 되겠 군 FPF2100의 VOUT [다섯째 핀]이 마이크로 컨트롤러의 VCC에 연결되어 얻을 것이다 ... 논리가 매우 당신이 버튼을 누르면 누르면 간단하다, OR 게이트의 출력은 다음 전원 스위치를로드하는 연결되었는지 높은됩니다 컨트롤러에갑니다 ... 후 지속적으로 전원 컨트롤러에 나가고, [또는 게이트의 다른 입력에 연결되어] GPIO 높은 만들 프로그램에서 ... 후 [당신이 말한 것처럼]을 모든 정류장, 스위치를 누르면 그만 ... 다시 누르면 스위치 시작, 하드웨어 GPIO 높은 ]...:의 미소를 만들기를 제외한 모든 제품 [돌볼 것입니다 :
 
귀하의 상세한 답변, kandhu하지만 주셔서 감사합니다 챔피온으로 인터럽트 후, 나는 시작 버튼을 다시 그것을 기다 리세요, 완전히 단절 마이크로 컨트롤러를 신고하고 싶어요, 난 그냥 tahts가 정지 스위치는 그냥 다 실행을 중지 누르면 후 원하는 난 그러나 그 후에 내가 다시 switchg 시작을 기다리는 원하는 모든 출력 포트에 0을 보내 말은 .. 현재 ISR 내 코드는 이제 단지 = 출력 포트에 0을 보내는가 포함되어 /
 
당신은 ISR 루틴에서 코드를 수정할 수 있고 스위치 기다리고 간단한 루프가 다시 누를 때 사용합니다. 일단 다음 루틴을 종료 모든게 좋을꺼 시작 누르면됩니다.
 
|하지만, 그 생각을 못해, 그것은이 mismanaged 스택 떠나 ... 나는 마이크로 컨트롤러는 ISR, 그것의가 스택에 뭐하는 다음 다시 와서 데리러 상점에 가면 말은 ..
 
그것의 당신을 더 나은 여기에 코드를 넣으려면 ... 그렇다면 누구라도 당신의 문제에 대한 솔루션을주고 ...
 
당신이 루틴을 입력하면, 그것은 인터럽트 프로세스를 중지합니다. 그것은 반환 주소를 저장합니다. 당신은 [내가] 레지스터를 저장 이런 게 필요 해요. [/ 내가] [내가] 모터를 중지합니다. [/ 내가] [내가] 제로 모든 출력을 전환합니다. [/ 내가] [내가] 루프 누를 수 스위치를 기다리고 다시. [/ 내가] [내가] 모터 시작 [을 / 전] [내가] 출력을 복원할 수 있습니다. [/ 내가] [내가] [/ 내가] [내가] 등록 [/ 내가] 내가 [복원하는 인터럽트 플래그를 취소합니다 ] 종료 isr의 [가 / 전]
 
ISR에 저장 레지스터, 스왑 당신을 도울 것입니다
 

Welcome to EDABoard.com

Sponsor

Back
Top