IAR da MOT uzantılı Dosya..

Başlatan neotr, 08 Ekim 2008, 17:49:54

neotr

Arkadaşlar ben IARIN renesas derleyıcısını kullnıyorum  derleme yapıyorum fakat bi türlü MOT uzantılı dosya elde edemıyorum debug modda derleme yapıyorum release dada yapınca durum degısmıyor bunun ayarı nasıldır ?

Klein

Proje opsiyonlarından , "linker" opsiyonlarını aç
"Output file" grubununun altında çıktı olacak dosya adı vardır. yoksa da sen yaz. uzantı farklı ise uzantıyı .mot yap.

Altta "format" gurubunun altında "Other" seçimini işaretle
"Output format" olarak motorola seç
"Format variant" için birşey seçme.

Debug oturumunda çalışıyorsan "Debug" klasörü altına, Release oturumunda çalışıyorsan "Release" klasörünün altında .mot dosyası oluşur.

neotr

klein yardımın için teşekkürler dediğin gibi yaptım ve .mot uzantılı dosyayı elde ett,m şimdi sana bir soru daha sorucam IAR da şu kodu derlersem
#include <iom16c62p.h>
void main()
{
  pd10=0x00;
  pd11=0x00;
  pd9=0x00;
  do{
    p10=0xFF;
    p11=0xFF;
    p9=0xff;
  }while(1);
}


port 10,port11,ve port9 tüm cıkısları high olurmu yoksa eklemem gereken başka birseyler daha varmı?

ugurtarlaci

@neotr

Öcelikle Renesas ta port direction ayarında "1" output , "0" input u ifade eder. Yani  PİC de olduğu gibi değildir. Verdiğin kodda çıkış alamazsın. Ayrıca MCU başlatma rutini oluşturmalısın . MCU ya göre bazı portların direction larını yapabilmek için protect açma işlemleri yapman gerekebilir.

Kolay gelin.
Zoru Başarırım , İmkansız Biraz Zaman Alır....İmza... YENİ NESİL GENÇ TÜRK MÜHENDİSLERİ......

Klein

Uğur'un bahsettiği gibi çıkış için yön bitini 1 yapmalısın. pd9'u yazabilmek için korumayı açman gerekir.
       pd10=0xFF
        pd11=0xFF // m30624 100 pin de p11 yok. 
        prc2=1;
            pd9=0xFF;
        prc2=0;

neotr

üstatlar sizin düzeltmelerinizle yazdığım kod şu:
#include <iom16c62p.h>
void main()
{
 
       
       
            pd1=0xFF;
            pd2=0xFF;
            pd3=0xFF;
       prc2=1;
           pd9=0xFF;        
      prc2=0;
  
do{
    p1=0xFF;
    p2=0xFF;
    p3=0xFF;
    p9=0xFF;
   
  }while(1);
}

kullandığım işlemcinin üstünde M30620FCPFP yazıyor.
M16C flasher da sectıgım cihaz M16C/62P    M30620FC (124kb+4kb)
yazıyor. Fakat ben bir çıkış gözlemleyemedim ilk defa program yuklemenın heyecanını yaşayamadım daha su M16C ye yardımlarınızı beklıyorum üstatlar...

ugurtarlaci

@Neotr

Aşağıdaki gibi bir MCU başlatma rutini hazırlamalısın. OSC seçimi, PLL ayarları, protect ve memory ayarları gibi ayarları tamamlamalısın.

Donanımda ise;

MCU Byte pini LOW
MCU CNVSS LOW
MCU NMI kullanmıyorsan HIGH da olmalıdır.

void mcu_initial(void)

{	

	/******************************************************************************
	*
	* Note that the PLL register PLC0 bits PLC02 to PLC00 can only be set once   *
	* after RESET. This is set up for 24MHz operation running off a 4MHz crystal.*
	*
	******************************************************************************/
	prcr  = 0x04;     /*Protect Kontrol Register Protect geçici iptal
	                     PRCR_0(PRC0) tarafından korunan registirlar <CMO,CM1,CM2,PLC0,ROCR,PCLKR>
	                     PRCR_1(PRC1) tarafından korunan registirlar <PM0,PM1,PM2,TB2SC,INVC0,INVC1>
	                     PRCR_2(PRC2) tarafından korunan registirlar <PD9,PACR,NDDR>
	                     PRCR_3(PRC3) tarafından korunan registirlar <VCR2,D4INT>*/

	prcr  = 0x0B;
	
	pm0   = 0x00;     /*Processor mode register set to default
	                    PM0_3(PM03) "1" YAPILDIĞINDA MİCROCOMPUTER SOFT RESET ALIR okunduğunda içeriği "0" dır */
	pm1   = 0x09;     /* Processor mode register
	                   PM1_0(PM10) "1" Yapıldığında 0F000-0FFFF arasında yer alan Flash Data Rom kullanıma açılır
	                   PM1_3 "1" olmalı
	                   PM1_7(PM17) "1" Yapıldığında internal RAM ve ROM erişimlerinde 1wait state araya sokulur*/
	cm0   = 0x08;     /*CM0_4(CM04)"0" Yapılarak P86 ve P87 sub_clock yerine I/O port olarak kullanılmıştır
	                    CM0_3(CM03) Bu durumda "1" yapılmalıdır                                     */
	cm1   = 0x20;     /*CM1_1(CM11) "0" seçilerek geçici olarak sistem clok main clock olarak seçilmiştie
	                    CM_15(CM15) "1" seçilerek eyer mcu stop moda girerse main clock girişleri high olarak sürülecek */
	cm2   = 0x00;     /*Oscillation stop detection register set to default      */
	plc0  = 0x12;     /*carpan 4  4mhz*4 =  16 MHz clock PL0(0,1,2)= "010"
	                    PLC0_7 "0" PLL hala kapalı stable olduktan sonra açılacak*/
	                  /* plc0-- 0x10 = n0      plc0-- 0x11 = carpan 2*/
	                  /* plc0-- 0x12 = carpan 4      plc0-- 0x13 = carpan 6*/
	pm2  &= 0xFE;     /*Set PM20 bit to "0" (2-wait states) PM2_O "0" yapilarak PLL stable olup oturana kadar 2 wait state beklenir */
	plc0  = 0x92;     /*Set PLL artık ON yapılır                    */
//__no_operation(); /*Wait until the PLL clock becomes stable (tsu(PLL))      */
	cm1   = 0x22;     /*Set the PLL clock as the CPU clock source=16MHz              */
	
	

	/******************************************************************************/

	pd8_0	=	1;		//Run_led port set output
	pd8_1	=	1;		//Com_led port set output

	pd5_6	=	0;		//Enter buton port set input
	pd5_7	=	0;		//Up_Sw port set input
	

	pd2		=	0xff;	// Memory Addres Low Byte Output
	pd3		=	0xff;	// Memory Addres high Byte Output
	pd4		=	0xff;	// Memory control Byte Output
	
	pd6_0	=	1;		// output   set for clk
	pd6_1	=	1;		// output set for sld
	pd7_4	=	0;		// input set for DATA in
	
	pd9		=	0x01;	// p9 for input out p9_1

	prcr  	= 	0x00;     /*PRCR_2(PRCR2) biti tarafından ko
}
Zoru Başarırım , İmkansız Biraz Zaman Alır....İmza... YENİ NESİL GENÇ TÜRK MÜHENDİSLERİ......

neotr

evet ugur dediğin gibi yapınca sonunda programımı atabildim teşekkürler hem sana hemde kelin e