typedef unsigned char U8;
typedef unsigned char bool;
typedef struct{
U8 set;
U8 run;
bool out;
}t_PWM;
t_PWM pwm[5];
void pwm_set(U8 index, U8 set)
{
if(index >= 5){
return;
}
pwm[index].set = set;
}
void isr_t0(void) interrupt 1
{
U8 i;
reload_1ms(); // 100uS,250us,500us....
for(i=0; i<5; i++){
if(++pwm[i].run >= pwm[i].set){
pwm[i].run = 0;
pwm[i].out ^= 1;
}
}
P0_0 = pwm[0].out;
}
void main(void)
{
U8 set = 1;
init();
while(1)
{
delay(3SECOND);
pwm_set(0, set);
set++;
}
}
|