Projetos eletrônica: como programar sub-rotinas pbasic

sub-rotinas PBASIC são inestimáveis ​​em seus projetos eletrônicos que usam um processador BASIC Stamp. UMA sub-rotina

é uma seção de um programa que pode ser chamado de qualquer lugar no programa. Quando a sub-rotina termina, o controlo do programa volta para o local de onde a sub-rotina foi chamado.

Sub-rotinas são úteis porque permitem separar longos trechos de seu programa de circuito principal do programa, o que simplifica o loop principal do programa para torná-lo mais fácil de entender. Outro benefício de sub-rotinas é que eles podem fazer o seu programa menor.

Suponha que você está escrevendo um programa que precisa executar cálculo complicado várias vezes. Se você colocar o cálculo complicado em uma sub-rotina, você pode chamar a sub-rotina a partir de vários pontos do programa. Dessa forma, você escrever o código que executa o cálculo complicado apenas uma vez.

Para criar e utilizar sub-rotinas, você precisa usar dois comandos PBASIC. O primeiro é GOSUB, que chama a sub-rotina. Você normalmente usam o GOSUB comando dentro loop principal do seu programa sempre que você quiser chamar a sub-rotina. O segundo comando é RETORNA, que é sempre o último comando no sub-rotina.

Para criar uma sub-rotina, você começa com um rótulo e terminar com um RETORNA comando. Entre eles, você escreve os comandos que deseja executar quando a sub-rotina é chamada.

Aqui está um exemplo de uma sub-rotina que gera um número aleatório entre 1 e 999 e salva-lo em uma variável chamada Rnd:

GetRandom: Random RndRnd = Rnd // 999 + 1RETURN 

Para chamar esta sub-rotina, você poderia simplesmente usar um GOSUB comando como este:

GOSUB GetRandom


este GOSUB comando transfere o controle para o GetRandom rótulo. Então, quando o GetRandom sub-rotina atinge o seu RETORNA comando, controle salta para o comando imediatamente após a GOSUB comando.

Aqui é um completo programa que usa uma sub-rotina para obter um número aleatório entre 1 e 1000 e utiliza o número aleatório para fazer com que o LED no pino 0 a piscar em intervalos aleatórios. Você pode executar este programa em qualquer circuito básico Selo que tem um LED no pino 0.

`LED Programa Blinker` Doug Lowe `10 de julho de 2011 `` Este programa pisca o LED no pino 0 aleatoriamente`. {$ SELO BS2}`{$ PBASIC 2,5} Rnd VAR WordLed1 PIN 0DOGOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100LOOPGetRandom: Random RndRnd = Rnd // 999 + 1RETURN

Quando você usa uma sub-rotina, é vital que você evitar que o seu programa a partir acidentalmente “cair” sua sub-rotina e executá-lo quando você não pretende que ele seja executado. Por exemplo, suponha que o programa na Listagem 3-5 usou um A SEGUIR laço, em vez de um FAZ circuito porque queria a piscar o LED apenas 100 vezes. Aqui está um exemplo de como não para escrever esse programa:

Video: 27 - Lógica de Programação - Funções

PARA Contador = 1 TO 100GOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100NEXTGetRandom: Random RndRnd = Rnd // 999 + 1RETURN

Você vê por quê? Depois de A SEGUIR laço pisca o LED 100 vezes, o programa continuará com o próximo comando após a A SEGUIR loop, que é a sub-rotina!

Video: Fechadura Eletrônica modelo Cofre - Mais um projeto da nova Apostila da Esquemas.org

Para impedir que isso aconteça, você pode usar outros comandos PBASIC, FIM, que simplesmente diz o BASIC Stamp que você tenha atingido o fim do seu programa, então ele deve parar a execução de comandos. Você colocaria o FIM comando após o PRÓXIMO de comando, assim:

PARA Contador = 1 TO 100GOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100NEXTENDGetRandom: Random RndRnd = Rnd // 999 + 1RETURN

Em seguida, o programa irá parar após o A SEGUIR ciclo termina.


Publicações relacionadas