ngdnhanbk |
12-01-2012 01:45 AM |
Led sáng dần
Mình viết hiệu ứng led sáng dần dùng chức năng PWM kết hợp timer0 và timer2 post lên cho mấy bạn tham khảo
Code:
#include <16F887.h>
#FUSES HS,NOWDT,NOPROTECT
#use delay(clock=4000000)
int16 value;
#INT_TIMER0
void ngattimer0()
{
int16 dem;
clear_interrupt(INT_TIMER0);
disable_interrupts(GLOBAL);
dem=dem+1;
if(dem==500)
{value=value+100;
if(value==1000)
{value=0;
}
dem=0;
}
set_timer0(0);
enable_interrupts(GLOBAL);
}
void main()
{
value=0;
output_high(PIN_C0);
output_low(PIN_C1); // Set CCP2 output low
output_low(PIN_C2); // Set CCP1 output low
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_ccp2(CCP_PWM); // Configure CCP2 as a PWM
setup_timer_2(T2_DIV_BY_4,255, 1); // 1kHz
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
set_timer0(0);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
while(1)
{
set_pwm1_duty(value);
set_pwm2_duty(value);
}
}
Mình chưa viết phần tắt dần, nhờ mấy bạn viết giúp
Ai có ý kiến gì hay thì bổ sung giúp nhé
|