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
Conteúdo
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.