Microchip C18 ile CCS C ile ilgili bi soru

Başlatan justice_for_all, 21 Kasım 2010, 22:22:40

justice_for_all

 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...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

X-Fi

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.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

justice_for_all

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...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

KAZIMUGUR

Vardır bir yerlerinde bir ayarı .



Uploaded with ImageShack.us

aliveli

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.

picmanya

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

justice_for_all

ben sadece neden kullanilmadigini ogrenmek istiyodum ama simdi anladim yardimlariniz icin tesekkurler...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay