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

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

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

비디오: 아두이노 우노(Arduino UNO) 10 LED Bar와 조도센서 (1) 2025
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 서브 루틴 프로그래밍 방법 - 더미

편집자의 선택

여성 건강 : 케겔 운동 방법 - 인형

여성 건강 : 케겔 운동 방법 - 인형

케겔 운동은 성기의 근육을 타겟으로합니다. 이 근육은 출산 중에 발생하는 스트레칭으로 인해 종종 약해지지만, 임신 한 적이없는 여성을 포함하여 어떤 여성이라도 적절한 케겔 (Kegel)을하는 법을 아는 것이 도움이 될 수 있습니다. 본질적으로 케겔 (Kegel)은 생식기에 좋은 운동을 제공하여 ...

폐경기 동안 기대할 사항 - 인형

폐경기 동안 기대할 사항 - 인형

폐경은 모든 여성의 삶의 사실입니다. 다른 연령대의 여러 단계의 증상으로 진행됩니다. 폐경의 결과로 여성은 알을 낳지 않고 생리를 멈추지 만 여성 호르몬, 에스트로겐 및 호르몬의 생성을 감소시킵니다.

여성 건강 : 요로 감염을 예방하는 방법 - 인형

여성 건강 : 요로 감염을 예방하는 방법 - 인형

요로 감염 (UTI)은 상당히 여성의 공통점. 통증이있는 ​​배뇨 나 잦은 소변과 같은 요로 감염의 증상을 발견하면 치료를받는 것이 중요합니다. UTI 치료는 일반적으로 항생제의 빠른 과정이지만 전문가의 도움을받는 데는 지체가 있으면 치료 시간이 길어질 수 있습니다. ...

편집자의 선택

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

많은 사람들을 위해 일하는 것과 비슷합니다. 많은 기업들이 혜택을 인식하고 있음에도 불구하고 습관을 버리는 것에 저항합니다. 사람들은 깨끗한 데이터가 시스템에 들어갈 수 있도록 시간을 할애하고 싶지 않지만 같은 사람들은 빨리 작업 할 수 있습니다 ...

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce의 모듈은 마케팅 프로그램을 관리, 추적 및 측정하는 데 사용하는 일련의 도구입니다. 캠페인 레코드는 캠페인 레코드입니다. 수동 또는 자동으로 리드, 연락처 및 / 또는 기회 레코드에 링크하여 캠페인에 대한 실제 메트릭을 제공 할 수 있습니다.

편집자의 선택

표시 관련 기사 Joomla 웹 사이트 - 인형

표시 관련 기사 Joomla 웹 사이트 - 인형

Joomla의 또 다른 멋진 모듈은 기사 - 관련 기사. 기사 - 관련 기사는 사이트 방문자가 보려고 선택한 기사와 관련된 기사를 표시하는 모듈입니다. 이 모듈은 현재 기사와 관련된 기사를 어떻게 알 수 있습니까? 그것은 메타 데이터에 입력 할 수있는 메타 데이터 키워드를 사용합니다 ...

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla는 세 가지 프런트 엔드 사용자, 백엔드 사용자 및 그 중간에있는 특수 클래스의 사용자 클래스가 있습니다. 이 클래스에는 3 개의 사용자 그룹이 있습니다. 작성자는 기사를 제출할 수 있습니다. 편집자는 새 기사를 제출하고 기존 기사를 편집 할 수 있습니다. 게시자는 새 기사를 제출하고 기존 기사를 편집하며 기사를 게시 할 수 있습니다. Joomla 사이트 작성자 작성 ...