CCS C ' de bir pin çıkışı OUTPUT_HIGH(PIN_X) demek yeterli oluyor. Keil' de ADuC7026 çıkışını (p0.0 ) 1 yapmak için aşağıdakini yazmam gerekli.
GP0DAT = 0x01010000;
DataSheet içinde de belirtiği üzere GP0DAT register configurasyon değerlerinide içeriyor. Ben illa bir pini okumak yada bir pini high/low yapmak için bu register' ı bu haliylemi kullanmak zorundayım? Mesala P0.0=1;
P0.1=1;
Yazmak varken ben;
GP0DAT = 0x01030000; yazmak zorunda kalıyorum....
GP0SET=0x00010000; yazıldığında 1. biti 1 yapar
GP0CLR=0x00010000; yazıldığında 1. biti 0 yapar
GP0DAT=0x04000000; 3 bit çıkış diğerleri giriş
GP0DAT Giriş ve çıkış yapılacak bitlerle set ve clr olacak kısımları tek hamlede düzeltebilir.
GP0CON ise portun yapısını belirler .
#define Led 0x00010000
GP0DAT=0x01000000; // port 1. bit çıkış yapıldı
GP0SET=Led;
GP0CLR=Led;
pdfsini daha detaylı incelemenizi tavsiye ederim....
#define veya struct/typedef tanımlamaları yaparak programının okunabilirliğini arttırabilirsin.
P0.1 = 0; gibi kullanmak için gerekli tanımlamaları senin yapman gerekir.
örnek programları ve anci-c anlatan kitapları incelemeni tavsiye ederim.
Piyasadaki tüm ARM derleyicileri Ansi - C uyumludur. aYe nin bir yerde bahsettiği gibi basic veya CCS bilen birinin Ansi-C öğrenmesi, hiç programlama dili bilmeyen birine göre daha zordur. Bu sebeple yeni dil öğrenmeye başlayan arkadaşlara tavsiyem Ansi-C öğrenmesidir. Yoksa ilerde pinout, output, serin gibi komutlar arayıp bulamayınca bocalarsınız.
Malesef CCS için picte yazdığın bir programı ARM için yeni baştan yazman gerekir.
arkadaşlar cevap için teşekkürler...
ise arkadaşım
GP0SET=0x00000001; yazıldığında 1. biti 1 yapar
GP0CLR=0x00000001; yazıldığında 1. biti 0 yapar
yazmışsınız. Fakat aşağıdaki gibi olacak galiba. Takıldıkça başınızı ağrıtırım artık:)
GP0SET=0x00010000; yazıldığında 1. biti 1 yapar
GP0CLR=0x00010000; yazıldığında 1. biti 0 yapar
#define Led 0x00010000;
gönderdikten sonra farketmiştim onu düzeltme yapmıştım sanırım düzeltmeden evvel okumuşsunuz bende hızlı cevap vermişsiniz:D
GP0DAT verisinde
0..7= GP0CON
8..15= GP0PAR
16..23= GP0SET CLR
24..31= GP0I/O temsil eder..