Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

timer 16 bit

Başlatan 707yunus, 01 Eylül 2008, 11:20:54

707yunus

selam arkadaşlar
ccs de timer0 nasıl 16 bit yapılır?18f452 nin ccs de ki device kısmına baktım sadece 8 bit yapmak için komut var...18f452 nin data sheetinde 16 bit olarak ta timer yapılabilir diyor...

selamlar..

mucit07

oyle birşey yok timer 0  8  bitliktir ancak timer icinde bir sayıcı daha kullanarak zamanı ayarlarsın ama bence sen timer 1 kulan nede olsa 16 bitlik




akdeniz üni.

iyonosfer

@mucit07
18f452 için timer0 8 bit veya 16 bit olarak seçilebiliyor. Datasheet'e bakabilirsin

@707yunus
hernangi bir ayar belirtmediğinde 16 bit olarak çalışır
setup_timer_0(RTCC_INTERNAL)    // 16 bit olur
setup_timer_0(RTCC_INTERNAL|RTCC_8_BIT)   // 8 bit olur
Blog Sayfam: www.teknobakis.com

Erol YILMAZ

PIC18 serisi için kodunuzu Microchip C18 ile yazarsanız datasheette ki
tüm registerları kendi adları ile kullanırsınız.

Bir elinizde datasheet olacağı için PIC18 de TMR0 8 bit mi?
16 bit mi nasıl ayarlanır? gibi soru işaretleri de olmaz.

Derleyicinin kendine özel yaptığı fonksiyonlarla uğraşmazsınız.
Ve nihayetinde 8 bit Mcu lar içinde 18 serisi gelişmiş bir seri olduğundan
bütün gelişmiş özelliklerini bilerek kullanmış olursunuz.

debi

Alıntı yapılan: "Allegro"PIC18 serisi için kodunuzu Microchip C18 ile yazarsanız datasheette ki
tüm registerları kendi adları ile kullanırsınız.

Bir elinizde datasheet olacağı için PIC18 de TMR0 8 bit mi?
16 bit mi nasıl ayarlanır? gibi soru işaretleri de olmaz.

Derleyicinin kendine özel yaptığı fonksiyonlarla uğraşmazsınız.
Ve nihayetinde 8 bit Mcu lar içinde 18 serisi gelişmiş bir seri olduğundan
bütün gelişmiş özelliklerini bilerek kullanmış olursunuz.

Allegro'dan CCS C'ye yine atıflar :) Aslında haklısınız.. ASM'den uzak durması CCS'in kendine has ismen(register vs..) farklı konutlar bulundurması bazen işi zorlaştırabiliyor.. Ama bir de PIC bilmeyen, C'yi iyi şekilde kullanabilen birisini düşünürsek, amaaan pic'in hangi registerini ne yapacağım önemli değil diyen birisi için CCS mükkemmel bana göre..

707yunus

ccs ve hitech hakkında çeşitli yorumlar okudum bnce programcılıkta en önemli şey mantık oluşturma algoritma oluşturmadır.tamam ccs nin kendine has terimleri vardır.bu asm yi bilipte ccs ye geçenlere zorluk çektirir.her dilin mutlaka dez avantajları vardır.

Erol YILMAZ

Asembler ile uğraşım yalnızca 3 saat sürdü. Biliyorum diyemem.
Hemen ardından o adını anmayacağım derleyiciye geçmiştim.
Şimdi bakıyorum da,,,

ASM den kurtulmam DOĞRU,
O derleyiciye geçmem YANLIŞmış :)



Bir elimizde datasheet;
T0CONbits.TMR0ON = 1;   // Timer0'ı AÇ
T0CONbits.T08BIT = 0;   // Timer0 ı 16 bit olarak SEÇ


yazıyoruz ve Timer0 16 bit oluyor.
Görerek, Hangi reg'de ne olmuş bilerek...

Microchip C18 de direkt datasheeti açıp kod yazmamız mümkün.
Herhangi bir registerda benzer işlemleri yapabiliyoruz.

-------------------------------------------------------------------------

Bir abimizin dediği gibi Takım tutar gibi değil...
Bunu da öğrenin, bakın, bunda da diğerinde de kod yazın.
Pratik diye "KOLAY DİYE" Bir tanesine takılıp kalmayın.
Hangisinin daha iyi olduğunu, Görerek, KULLANARAK, karar verin :)

iyonosfer

aynısı CCS-C ile aşağıdaki gibi yapılabilir
#byte T0CON = 0xfd5
T0CON = 0x80;


Hiç bir hazır fonksiyon  kullanmamış olduk. Datasheet'e baktık ve yazdık.
Blog Sayfam: www.teknobakis.com

debi

Hocam konu sonuçlandı nasıl olsa, ben başka bir şeyi merak ediyorum.. Araştırmadan soruyorum, affola..
C18'de hazır komut diye birşey yok mu? Herşey ANSI C ile mi yazılıyor? CCS'e kıyasen, bit_test , bit_set gibi ,make32 komutlarının kullanımı C18'de nasıl?

CCS bilip C18'e geçiyorum desem kaç günümü alır öğrenmek?

Erol YILMAZ

Alıntı yapılan: "debi"Hocam konu sonuçlandı nasıl olsa, ben başka bir şeyi merak ediyorum.. Araştırmadan soruyorum, affola..
C18'de hazır komut diye birşey yok mu? Herşey ANSI C ile mi yazılıyor? CCS'e kıyasen, bit_test , bit_set gibi ,make32 komutlarının kullanımı C18'de nasıl?

CCS bilip C18'e geçiyorum desem kaç günümü alır öğrenmek?

18 serisi PIC leri tanımaktan yana iseniz,
C18 ile bu çok daha rahat olacaktır. Bit test ve bit set
komutları veya fonksiyonları niçin üretilmiş merak ediyorum.
C de böyle birşeye hiç ihtiyaç yoK aslında.

T0CONbits.T0CS = 1;     yerine bit set üretilmiş.

if (T0CONbits.T0CS) {...}  ifadesi yerine de bit test üretilmiş.

C18 pratiktir kolaydır. ANSI C gözünüzü hiç korkutmasın.

C18 timers.h kütüphanesinden örnek bir fonksiyon
OpenTimer0(TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_EDGE_RISE & T0_PS_1_128);


OpenUSART(USART_TX_INT_OFF &
             	USART_RX_INT_OFF &
             	USART_ASYNCH_MODE &
             	USART_EIGHT_BIT &
             	USART_CONT_RX &
             	USART_BRGH_HIGH,25 );

707yunus

hazır konu açılmışken derleyicilerle ilgili aklıma takılan bir soru soracağım.Sayın Allegro hocam bir yerde şöyle bir ifade kullanmış

"Yazdığınız kod bu üreticiye bağlı kod olur, Başka platforma
dönüşümü çok zordur. "

bu başka platforma taşıma nedir nasıl yapılır ve önemini açıklayan arkadaşlar olursa memnun olurum..

Erol YILMAZ

Alıntı yapılan: "707yunus"bu başka platforma taşıma nedir nasıl yapılır ve önemini açıklayan arkadaşlar olursa memnun olurum..

Bir amaca yazdığın kodu başka bir mcu için çalıştırmak istediğinde
ne gibi değişiklikler yapman gerekecek ?

delay_ms()
test_bit() ifadesi başka bir derleyicide çalışmaz.

ama bir porta define edilmiş  if(TANIMLI){}
ifadesi diğer C derleyicisinde aynen çalışacaktır.

%100 taşınabilirlik pek pratik görünmüyor,
yalnız ne kadar çok sağlanabilirse o kadar iyi.