pointer deneme tris adresleme uygulaması?

Başlatan omereliusuk, 19 Şubat 2012, 01:32:05

omereliusuk

 
while(true){  
          int *tris_b_ptr,tris_b;
          tris_b++;
          tris_b_ptr=0x86;//tris b nin adresine giriş;
                  *tris_b_ptr=tris_b;//trisb nin adresinin değerini değiştirdi. giriş çıkış burada yapıldı.
        imlec(4,2);  printf(lcd_putc,"p_adr & %x deGer%x",*&tris_b_ptr,tris_b);
        }

set_tris_b(0x00);//bu değeri adres operatörü ile değiştirmeye çalışıyorum. proteus tamam dedi ama gerçekten de tamam mı?
kısaca bu kodlar ile istediğim bir değere ulaşabiliyorum. herhangi bir sorun oluşturur Mu?

omereliusuk

#1
hocam amaç deneme;

bu pointer struct union vs. onları öğrenmeye çalışıyorum.  yani tris değerinin başlangıçtaki değeri hiç önemli değil deneme çünkü. bu 0x00 dan 0xff 'ye kadar herhangi bir değer olabilir ve bu da benim için önemli değil. amaç o adrese ulaşabilmek.

bir de durum tris olunca ccs de
atıyorum başlangıçta set_tris_b(0xff); yazmacını değiştirdik. ama sonra bu değişimin üzerine yeni bir değişim olmasını istiyoruz. atıyorum lcd library üzerinde bu işi yapıoruz.
ben başlangıçtaki bu değerin üzerine
lcd ye bağlı pinlerin çıkış olmasını istiyorum.
yani b 'nan tamamını giriş yapmış olalım.
lcd yi de b portuna bağlayalım. tris b yazmacının değerini en başa gitmeden otomatik olarak değiştirmek istiyorum. bu da senaryosu...

o yüzden pointer ile bunu düzenlemeye çalıştım. yoksa tabiki başlangıçta tris_a ye bir değer vermek daha mantıklı...
cevap verdiğiniz için teşekkürler. şu adreslemeyi tam öğreniyim daha sonra
-> arm derslerine tam anlamıyla adapte olabilirim...

omereliusuk

#2
   int *adres_ptr = (int *) 0x01; //*adres_ptr   1. adrese atandı. artık *adres_ptr 1.adreste.
while(*&adres_ptr)//adres_ptr nin hangi adreste olduğuna göre işlem yapacak. eğer adres_ptr nin adresi 0 ise işlem bırakılacak.
{

*adres_ptr++;//burada kapı numaralarını değiştirerek hangi kapıda kimin olduğuna (içindeki değere)  bakacağız.
imlec(4,2);  printf(lcd_putc,"p_adr & %x deGer%x",*&adres_ptr,*adres_ptr);        
}

     while(true){int *adres_ptr,deger; 
     deger++;//b
      adres_ptr=0x06;//b portunun değerini değiştireceğiz. bunu deneyeceğiz. 
                //output_b(deger);ile aynı olacak mı?
               *adres_ptr=deger;//isis denemelerim olduğunu gösteriyor. bu c yi daha çok sevmeye başladım. hatta bu register daha keyifli gibi gelmeye başladı.
      imlec(4,2);  printf(lcd_putc,"p_adr & %x deGer%x",*&adres_ptr,deger);        }

bir şeyin ıncığını cıncığını öğrenmeden bırakamıyorum.