Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

for döngüsü problemi

Başlatan bulut_01, 04 Şubat 2016, 21:44:25

bulut_01

kodda deişiklik yaptım son hali böyle daha kararlı.

#include <16F628A.h>
#FUSES NOWDT                     //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT              //No brownout reset
#fuses NOMCLR
#use delay(int=4000000)

int16 x=0;
int16 t=0;
int c=0;

#int_timer0  
void TIMER0_isr() 
{
set_timer0(60);

if(c==1)
{
for(t=1000;t>400;t--)
{
   for(x=0;x<=1;x++)
   {
       output_high(PIN_b0);
       output_high(PIN_b3);
       delay_us(t);
       output_low(PIN_b0);
       output_low(PIN_b3);
       delay_us(1000-t);
       c=0;
}
}
}
}

void main()
{
setup_comparator(NC_NC_NC_NC);
set_tris_a(0b00000011);
set_tris_b(0b00000000);
output_a(0x00);
output_b(0x00);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
enable_interrupts(INT_RTCC);


while(1)
{

if(t<400)
{
c=1;
}
output_high(PIN_b0);
output_high(PIN_b3);
delay_us(t);
output_low(PIN_b0);
output_low(PIN_b3);
delay_us(1000-t);
}
}
YENİLMEZ..

dursuncemal

:))) for u cakmisin gene interrupta  pwm  kulansan daha iyi olur. pwm frekansinin bir onemi var mi? led mi kontro edecen?
:=

bulut_01

zamanlama önemli değil mekanik bir kol calıstırıyor sadece kod biraz daha geliştirmem lazım
YENİLMEZ..

dursuncemal

:=

bulut_01

YENİLMEZ..