Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: serdarkaradeniz - 04 Mayıs 2007, 15:40:51

Başlık: ARM ADuC7026 & Keil
Gönderen: serdarkaradeniz - 04 Mayıs 2007, 15:40:51
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....
Başlık: ARM ADuC7026 & Keil
Gönderen: ise - 04 Mayıs 2007, 16:48:39
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....
Başlık: ARM ADuC7026 & Keil
Gönderen: mp3dragon - 04 Mayıs 2007, 17:21:57
#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.
Başlık: ARM ADuC7026 & Keil
Gönderen: serdarkaradeniz - 04 Mayıs 2007, 17:52:55
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;
Başlık: ARM ADuC7026 & Keil
Gönderen: ise - 04 Mayıs 2007, 18:21:14
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..