Microchip C18 derleyicisinde Timer0 8bit ve 16 bit kullanilabiliyorken neden CCS C derleyicisinde sadece 8 bit kullaniliyor??
Bunun nedenini bilen varsa aciklayabilirmi acaba??
Simdiden Tesekkurler...
Derleyiciler donanım yapısını değiştirmez ama kullanımı değişir malesef C18 ansi c, CSS değil bütün dünya ansi c yi tanıyor ancak ccs i sadece kullanıcıları tanıyor. :)
kullandığınız picde timer0 donanımda 16 bitmi bilmiyorum ama timer0H timer0L diye bölmüş olabilir derleyici.
Ben her iki derleyiciyide kullaniyorum ama PIC18 serisinde C18de timer0 i 16 bit kullaniyorum ama CCS ye gelince sadece 8 bit kullanmaya izin veriyor...
Registerlerdede 16 bit kullanimi var ama CCS de nedense bunu yapmamislar...
Nedenini bir turlu cozemedim...
Vardır bir yerlerinde bir ayarı .
(http://img266.imageshack.us/img266/2043/ccss.png) (http://img266.imageshack.us/i/ccss.png/)
Uploaded with ImageShack.us (http://imageshack.us/)
Timers 1, 3, and 5 return a 16 bit int.
Timers 2 and 4 return an 8 bit int.
Timer 0 (AKA RTCC) returns a 8 bit int except on the PIC18XXX where it returns a 16 bit int.
////////////////////////////////////////////////////////////////// Timer 0
// Timer 0 (AKA RTCC)Functions: SETUP_COUNTERS() or SETUP_TIMER_0(),
// SET_TIMER0() or SET_RTCC(),
// GET_TIMER0() or GET_RTCC()
// Constants used for SETUP_TIMER_0() are:
#define T0_INTERNAL 0
#define T0_EXT_L_TO_H 32
#define T0_EXT_H_TO_L 48
#define T0_DIV_1 8
#define T0_DIV_2 0
#define T0_DIV_4 1
#define T0_DIV_8 2
#define T0_DIV_16 3
#define T0_DIV_32 4
#define T0_DIV_64 5
#define T0_DIV_128 6
#define T0_DIV_256 7
#define T0_OFF 0x80
#define T0_8_BIT 0x40
#define RTCC_INTERNAL 0 // The following are provided for compatibility
#define RTCC_EXT_L_TO_H 32 // with older compiler versions
#define RTCC_EXT_H_TO_L 48
#define RTCC_DIV_1 8
#define RTCC_DIV_2 0
#define RTCC_DIV_4 1
#define RTCC_DIV_8 2
#define RTCC_DIV_16 3
#define RTCC_DIV_32 4
#define RTCC_DIV_64 5
#define RTCC_DIV_128 6
#define RTCC_DIV_256 7
#define RTCC_OFF 0x80
#define RTCC_8_BIT 0x40
timer0 konfigürasyonunda RTCC_8_BIT
kullanırsan 8 bit modda çalışır kullanmazsan 16bit döndürür.
CCS C içerisine asm kod ilavesi mümkün oluyormu?
mümkünse;
C18 de ilgili yer için üretilen derleme sonucundaki asm kodları CCS C içine gömme veya
asm biliniyorsa direkt yalnızca bı kısma ait kodları asm ile yazın derim.
aslında istediğiniz çalışma 8 bit Timer ilede kısmen sağlanır ama siz illa 16 bit kurmak istiyorsunuz anladığım kadarı ile
ben sadece neden kullanilmadigini ogrenmek istiyodum ama simdi anladim yardimlariniz icin tesekkurler...