개인 재정 전자 프로젝트 : PBASIC 서브 루틴 프로그래밍 방법 - 더미

전자 프로젝트 : PBASIC 서브 루틴 프로그래밍 방법 - 더미

비디오: 아두이노 우노(Arduino UNO) 10 LED Bar와 조도센서 (1) 2024

비디오: 아두이노 우노(Arduino UNO) 10 LED Bar와 조도센서 (1) 2024
Anonim

PBASIC 서브 루틴은 BASIC Stamp 프로세서를 사용하여 전자 프로젝트에서 매우 중요합니다. 서브 루틴 는 프로그램의 어느 위치에서나 호출 할 수있는 프로그램 섹션입니다. 서브 루틴이 끝나면 프로그램의 제어는 서브 루틴이 호출 된 위치로 점프합니다.

서브 루틴은 프로그램의 메인 루프에서 프로그램의 긴 부분을 분리 할 수 ​​있기 때문에 유용합니다. 메인 루프를 이해하기 쉽도록 단순화합니다. 서브 루틴의 또 다른 이점은 프로그램을 더 작게 만들 수 있다는 것입니다.

복잡한 계산을 여러 번 수행해야하는 프로그램을 작성한다고 가정합니다. 복잡한 계산을 서브 루틴에 배치하면 프로그램의 여러 위치에서 서브 루틴을 호출 할 수 있습니다. 그렇게하면 복잡한 계산을 한 번만 수행하는 코드를 작성할 수 있습니다.

서브 루틴을 만들고 사용하려면 두 개의 PBASIC 명령을 사용해야합니다. 첫 번째는 GOSUB이며 서브 루틴을 호출합니다. 일반적으로 서브 루틴을 호출 할 때마다 프로그램의 메인 루프 내에서 GOSUB 명령을 사용합니다. 두 번째 명령은 RETURN이며 항상 서브 루틴의 마지막 명령입니다.

서브 루틴을 만들려면 레이블로 시작하여 RETURN 명령으로 끝냅니다. 그 사이에 서브 루틴이 호출 될 때 실행할 명령을 작성합니다.

다음은 1에서 999 사이의 난수를 생성하고 Rnd 변수에 저장하는 서브 루틴의 예입니다.

GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN

이 서브 루틴을 호출하려면, 다음과 같은 GOSUB 명령을 사용하면됩니다.

GOSUB GetRandom

이 GOSUB 명령은 컨트롤을 GetRandom 레이블로 전송합니다. 그런 다음 GetRandom 서브 루틴이 RETURN 명령에 도달하면 컨트롤은 GOSUB 명령 바로 다음 명령으로 다시 점프합니다.

서브 루틴을 사용하여 1에서 1,000 사이의 난수를 얻고 난수를 사용하여 핀 0의 LED를 임의의 간격으로 깜박이는 완전한 프로그램이 있습니다.

'LED 깜박이 프로그램'Doug Lowe '2011 년 7 월 10 일 "이 프로그램은 핀 0의 LED를 임의로 깜박입니다.'{$ STAMP BS2}이 프로그램은 핀 0에 LED가있는 기본 스탬프 회로에서 실행할 수 있습니다. '{$ PBASIC 2.5} Rnd VAR Word Led1 PIN 0 DO GOSUB GetRandom HIGH Led1 PAUSE Rnd LED1 PAUSE 100 LOOP GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN

서브 루틴을 사용할 때 매우 중요합니다. 프로그램이 우연히 서브 루틴에 "빠져서"실행되지 않을 때 프로그램을 실행하지 못하게합니다.예를 들어, 목록 3-5의 프로그램이 LED를 100 번 깜박이기 때문에 DO 루프 대신 FOR-NEXT 루프를 사용했다고 가정합니다. 다음은 그 프로그램을 작성하는 방법을 999하지 않는 예입니다: FOR 카운터 = 1 TO 100 GOSUB GetRandom HIGH Led1 PAUSE Rnd LED1 PAUSE 100 NEXT GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN

그 이유를 알고 있습니까? FOR-NEXT 루프가 LED를 100 번 깜박 거리면 프로그램은 FOR-NEXT 루프 다음의 서브 루틴 인 다음 명령으로 계속됩니다!

그런 일이 일어나지 않게하려면 다른 PBASIC 명령 인 END를 사용할 수 있습니다. END는 BASIC Stamp에 프로그램의 끝에 도달했음을 알려주므로 명령 실행을 중지해야합니다. 다음과 같이 NEXT 명령 뒤에 END 명령을 배치합니다.

FOR 카운터 = 1 TO 100 GOSUB GetRandom HIGH Led1 PAUSE Rnd LED LED1 PAUSE 100 NEXT END GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN > 그런 다음 FOR-NEXT 루프가 완료되면 프로그램이 중지됩니다.

전자 프로젝트 : PBASIC 서브 루틴 프로그래밍 방법 - 더미

편집자의 선택

Dragon Go! iPhone 및 iPad 용 앱 - 인형

Dragon Go! iPhone 및 iPad 용 앱 - 인형

Dragon Search를 사용하시는 분이라면 Dragon Go를 사용하는 것이 좋습니다! Nuance는 iPhone 3GS, iPhone 5, iPhone 4, iPod touch (3 세대), iPod touch (4 세대) 및 iPad에서 사용할 수 있도록 무료로 다운로드 할 수있는이 앱을 만들었습니다. (iOS 4.0 이상이어야합니다.) Android 기기에서도 사용할 수 있습니다. 드래곤가! ...

드래곤에서 피할 수있는 10 가지 실수 말하기 - 인형

드래곤에서 피할 수있는 10 가지 실수 말하기 - 인형

모두가 실수를 저지르고 어떤 사람들은 정말 크고 재미있게 만든다. 실수. NaturallySpeaking을 사용하여 많은 실수를 저 지르므로 때때로 수시로 일부를 만들 수도 있습니다. 내가 묻는 것은 다음과 같습니다. 내가 미리 짐작했던 10 가지 분명한 실수를하지 마십시오. 원래의 수. 창조적으로 행동하십시오. 거기서 나가서 ...

NaturallySpeaking을위한 10 가지 시간 절약 팁 - 인형

NaturallySpeaking을위한 10 가지 시간 절약 팁 - 인형

때로는 잘하고 그냥 사용하는 것의 차이 새로운 소프트웨어는 더 지혜롭고 경험 많은 스승의 충고 한 부분입니다. 누군가가 당신에게 전에 말했었 으면 좋을 10 가지가 있습니다. 대화 상자의 단축키 사용 대화 상자, 라디오 버튼, 확인란의 다양한 기능 ...

편집자의 선택

Google SketchUp 8에서 새로운 지형 모델을 만드는 법 - Google에서 모델링 할 때 인형

Google SketchUp 8에서 새로운 지형 모델을 만드는 법 - Google에서 모델링 할 때 인형

SketchUp을 사용하면 지형을 만들어야 할 수 있습니다. 건물에 대한 패치를 모델링하든 센트럴 파크를 다시 디자인하든 기존 데이터로 지형을 모델링 할 수 있습니다. 기존 데이터는 일반적으로 등고선 또는 토폴 라인 형태로 도착합니다. 지형지도에서 볼 수있는 삐걱 거리는 선을 알고 있습니다.

SketchUp에서 드레이프로 경로와 도로를 만드는 법 - 스케치 업에서 드레이프 도구

SketchUp에서 드레이프로 경로와 도로를 만드는 법 - 스케치 업에서 드레이프 도구

드레이프 도구가 작동 함 쿠키 커터와 조금 같다. 그것을 사용하여 객체의 가장자리를 직접 그 아래에있는 다른 표면으로 전송합니다. 아마도 당신은 부드럽게 경 사진 지형을 가지고 있으며, 당신은 그것에 사행 경로를 그리기를 원할 것입니다. 경로는 윤곽선을 따라야합니다.

SketchUp 모델을 3D 인쇄 용 부품으로 자르는 방법 - 인형

SketchUp 모델을 3D 인쇄 용 부품으로 자르는 방법 - 인형

SketchUp 모델 자르기 Intersect Faces 도구를 사용하여 그룹을 결합하는 것과 매우 유사합니다. 더 큰 오브젝트와 교차하여 커팅의 새 가장자리가 될 커터로 지오메트리를 사용할 것입니다. 모델이 매우 단순하고 SketchUp을 사용하는 경우 ...

편집자의 선택

Route Prefix를 사용하여 Junos - dummy에서 라우팅 필터를 생성하는 방법

Route Prefix를 사용하여 Junos - dummy에서 라우팅 필터를 생성하는 방법

라우팅 정책은 특정 경로가 라우팅 테이블에 수용되거나 일부 인접 라우터에 보급되는 것을 방지하기위한 것입니다. 경우에 따라 특정 경로 또는 경로 집합을 일치시키는 것이 유용 할 수 있습니다. 이렇게하려면 경로 필터를 사용합니다. 경로 필터는 특정 IP 주소 또는 접두어 범위에서 일치합니다. ...

Junos 라우터에서 COS의 코드 포인트 별명을 사용하는 방법 - 인형

Junos 라우터에서 COS의 코드 포인트 별명을 사용하는 방법 - 인형

전달 수업은 고통 스러울 수 있습니다. 더 좋은 방법은 코드 포인트 별칭을 사용하는 것입니다. CoS (Class of Service) 정책을 결정할 때 비트 패턴을 지정하는 대신 비트 패턴을 나타내는 별칭 이름을 정의 할 수 있습니다. 이러한 별칭을 코드 포인트 별칭이라고합니다. 간단히 말하자면 코드 포인트를 사용하십시오 ...

Junos 라우팅 정보를 요약하는 방법 - 더미

Junos 라우팅 정보를 요약하는 방법 - 더미

때때로 라우팅 정보를 간단하게 요약 할 수 있습니다 라우터. 예를 들어, 네트워크에서 OSPF를 방금 구성 했으므로 라우팅 테이블에 특정 수의 OSPF 경로가 표시 될 것으로 예상됩니다. show route summary 명령을 실행하여 모든 경로를 볼 수 있습니다 ...