port okuma sorunu(__ACİL__)

Başlatan a_to_z, 18 Kasım 2005, 00:57:30

a_to_z

//**********************************//

void main()
{

   set_tris_c(0b00000111);
    BYTE temp;
    Lcd_init();
    rtc_init();
    rtc_set_datetime(30, 11, 05, 03, 23, 59);
    while(True){
        lcd_gotoxy(1,1);
        saat_yaz();
        lcd_gotoxy(1,0);
        date_yaz();
     
        delay_ms(80);
        if(!input(PIN_C0))
            saat_ayar();

 
        }

}


void saat_ayar()
{
    BYTE flag = 0;
    BYTE temp;
    
    while(TRUE)
    {
        delay_ms(70);
            while(!input(pin_C1)){
                lcd_gotoxy(1,1);
                delay_ms(200);
                saat_value_inc();
             }
            if(!input(pin_C2)){
                delay_ms(100);
                return;
            }
            
    }

}

void saat_value_inc()
{
    write_ds1302(0x84,get_bcd(++rm_bcd(read_ds1302(0x85))));
    if(rm_bcd(read_ds1302(0x85)) == 24)
        write_ds1302(0x84,get_bcd(0));
    printf(lcd_putc,"%02d",rm_bcd(read_ds1302(0x85)));   //******lcd ' ye arttirilmiş deger yazdiriliyor.
}

//**************************************************//


arkadaslar yukardaki kod CCS ile yazilmiş bir kod...kodu biraz anlatırsam söyle ki kodumuz farkettiyseniz DS1302 için yazilimş bir kod ve saat yapmaya calışıyorum..ve şuan ki kod biraz deneme amaçlı yani böyle oluyo mu olmuyo mu diye bakıyorum...ama burda birz  takıldım..ben PORTC nin 0, 1 ve 2 nolu pinlerini kullanıyorum..

kodu derlerken yanlışıda yok..güzelce derleniyor.fakat bunu PROTEUS programına koyunca çalışması şu şekil oluyo   :

'main' içindeki tuşa basınca dallanıyo ve fonksiyondaki sonsuz döngüye giriyo(burası güzel).daha sonra ikinci tuşa basınca saat degeri arttiriyo(bu da güzel).ama dikkat edilecek nokta şu zaten birinci tuştan sonra hangi tuşa basarsam basıyım arttirmaya devam ediyo..ayrıca ne zaman çıkacağı belli olmuyor..

bide DELAY  felan yaptım aralarda ama onları gürültü olayını engellemek için koydum,,hani belki dedim sorun odur ama pek çare etmedi,,yada ben doğru yerleri ve zmanlari ayarlayamadım..

Umarım derdimi anlatabilmişimdir...yardımlarınızı bekliyorum..herkese kolay gelsin..

mod notu:lütfen code tagını kullanalım.

picusta

assemblerdaki return ile C deki return ayni isi görmüyor. bunun yerine break kullan.