Que onda Ralf2,
En este mismo sitio hay un manual en CASTELANO para aprender a usar PBPRO, te recomiendo que te des una vulta por ahi:
http://www.todopic.com.ar/pbp_sp.html#buttonEl comando button es un comando con el siguiente formato:
BUTTON Pin , Down , Delay , Rate , Bvar , Action , Etiqueta
..............donde Pin es el pin donde esta conectado el boton siendo una constante , variable o pin de puerto que aloje el valor de 0-15 . A parte de esto, tiene anti rebote y autorepeticion que son opcionales, el antirebote te ayuda a que si oprimes una sola ves el boton, y este emita 2 o 3 o mas pulsos de entrada en este pin, es como un FILTRO implementado en software que espera a que el estado haya cambiado nuevamente a su posicion normal antes de continuar con la ejecucion.
El estado DOWN, es para saber que estado se quiere cuando se oprima el boton(o mejor dicho el esperado), puede ser 0 o 1
El Estado DELAY es el tiempo antes de que comienze la autorepeticion. va de 0 a 255 donde el minimo(0) no permite ANTI REBOTE(osease si hay rebotes) ni autorepeticion y el maximo(255) no permite Rebotes ni autorepeticion.
El estado RATE es el valor de AUTOREPETICION
El estado BVAR es la variable que llevara el conteo de las repeticiones y demoras. esta debe iniciarse en 0 y es exclusiva para el comando...(no debe usarse para otras cosas)
El estado Action es el estado del boton sin oprimirse(opuesto al de oprimirse en DOWN)
El estado Etiqueta es donde comienza la ejecucion si es CIERTA ACTION
Una cosa mas, los ejemplos expuestos por el pana Todopic son eejmplos para el compilador proton sin embargo el comando funciona igual que el compilador pbpro.
Una breve explicacion de parte del codigo:
Chk1: Delayms 25
Button SW1,0,40,5,BUF1,0,Chk2 " Check Button 1 (Skip to 2 if Not Pressed)
Toggle LED1
Chk1, es un label encerrando la rutina del comando Button, un delay de 25ms, y cheka el boton definido por la variable SW1(el pin del puerto definico con la variable SW1).
CERO es el estado que se BUSCA cuando se oprime el boton, 40 es el dalay para antirebote y antirepeticion. 5 es el numero de CICLOS entre las autorepeticiones . BUF1 es la variable que almacena o con la cual trabaja dicho comando (inicializarse en cero...etc) . CERO es el estado en que debe de estar el pin sin oprimirse. Chk2 es la etiqueta a donde va en caso de que sea cierta ACTION o en este caso sea cero(permanesca en reposo o no haya sucedido el boton), funciona como un goto .
En otras palabras e slo siguiente:
Chk1: Delayms 25 ´esperamos un poco
Button SW1,0,40,5,BUF1,0,Chk2 " si SW1=0 (supongo que estan activadas las pullups y se esta llevando a tierra dicho boton) hace un cmabio de etsado en LED(lo enciende o lo apaga.. y asi sucesivamente), pero si esta en UNO logico (no se oprimio boton y no se llevo a tierra) ckeya Action o TARGETSATE y si es cero=no pressed(no oprimido dicho boton) como no es 1 logico(no SALE o brinca el Toggle Led1 y lo lleva a la etiqueta CHK2... , dentro de todo esto BUF1 alamcena los conteos y demas.. delay 40 de antirebote y antirepeticiones y 5 ciclos entre cada repticion
Toggle LED1
Espero que haya quedado mas claro. Toda esta informacion y mejor explicada viene en el manual de cada compilador
Salu2 pana