Code: Select all
#include <platform.h>
#include <xs1.h>
# define FLASH_PERIOD 100000000
out port led = PORT_LED ;
in port sw1 = PORT_BUT_1;
in port sw2 = PORT_BUT_2;
select sw_sel(in port sw1, in port sw2,unsigned &temp);
int main ( void ) {
timer tmr ;
unsigned isOn = 1;
unsigned temp;
unsigned t;
temp=isOn;
tmr :> t;
while (1) {
led <: isOn ;
t += FLASH_PERIOD ;
tmr when timerafter (t) :> void ;
isOn = ! isOn ;
led <: isOn;
t += FLASH_PERIOD ;
tmr when timerafter (t) :> void ;
sw_sel(sw1,sw2,temp);
isOn=temp;
}
return 0;
}
select sw_sel(in port sw1, in port sw2,unsigned &temp){
case sw1==1:
temp*=2;
if (temp==16) temp=1;
break;
case sw2==1:
if (temp==1) temp=16;
temp/=2;
break;
default:
return -1;
}
}