merhaba arkadaşlar, bu şekilde bir proje yapmak istedim ancak 20 denemedir hata alıyorum yapmak istediğim rutin olarak 8 saniye yeşil 8 saniye kırmızı yancak (6 şar saniye yalnız 2 şer saniye sarı ışıklı beraber), aynı andada yaya ışıkları yanıcak, biri butona bastığı anda 2 saniye bekliyecek araca sarı ısık yakıp 2 saniye sonra araca kırmızı yayaya yeşil yakıcak, ancak içinden çıkamadım, yazdığım kod ise
#include <16f877a.h>
#fuses XT,NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(a)
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
set_tris_b(0x00);
set_tris_a(0x01);
output_b(0x00);
while(1)
{
if(input(pin_a0)==0)
{
while(input(pin_a0)==0);
ETIKET:
output_high(pin_b0);
output_high(pin_b3);
delay_ms(6000);
output_low(pin_b3);
output_high(pin_b1);
output_high(pin_b4);
delay_ms(2000);
output_low(pin_b0);
output_low(pin_b1);
output_high(pin_b2);
delay_ms(6000);
output_high(pin_b1);
delay_ms(2000);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b4);
}
else if(input(pin_a0)==1)
{
while(input(pin_a0)==0);
delay_ms(2000);
output_b(0x00);
output_high(pin_b1);
delay_ms(2000);
output_low(pin_b1);
goto ETIKET;
}
}
}
isis çizimi ise
[IMG]http://i50.tinypic.com/1z4vdhk.jpg[/img]