Şu programı deneyebilir misiniz

Başlatan Nedenler, 19 Eylül 2014, 10:26:13

Nedenler

Arkadaşlar merhaba. 18F452 ile yaptığım ve çalışan bir programın mcu'sunu değiştirmem gerekti.
18f46k22 kullandım fakat Timer2'sinin bir türlü çalıştıramadım.
Compiler, windows, driver gibi gereksiz can sıkıcı bir problemden olmasından şüpheleniyorum.

Bendeki proteus'un mcu library'sinin sağlamlık kontrolü için programı sizin denemenizi, (proteus debug modunda ms_4 ve sn değişkenleri değişiyor mu?)
Bendeki compiler'ın kontrolü için kaynak dosyayı derleyerek .cof dosyasını göndermenizi rica edeceğim.

Şimdiden teşekkür ederim.

http://s3.dosya.tc/server28/ikxsHs/tmr2.rar.html

Salih

Şu şekilde değişiklik yapılınca derliyor.
#include <18F46K22.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES HSH                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV22                   //Brownout reset at 2.0V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O on RESET
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
//#FUSES NOLPT1OSC                //Timer1 configured for higher power operation
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
//#FUSES NODELAYINTOSC         
#use delay(clock=20000000)

int8 ms_4;
int16 sn;

#int_timer2
void timer2_isr()
{
   ++ms_4;
   if(ms_4>=250)
   {
      ms_4=0;
      ++sn;
   }
}

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DIV_BY_16,255,5);
   setup_timer_4(T4_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard

   enable_interrupts(int_timer2);
   enable_interrupts(GLOBAL);
   
   while(1);

}

Nedenler

Hocam derlemede bir sıkıntım yoktu. Muhtemelen versiyon farkları nedeniyle Fuse ayarlarında sorun oldu sizde.
Gönderdiğiniz şekilde denediğimde de Timer2 hiç kesmeye gitmiyor.

aliveli

şüphelenmen gereken windows, compiler değil proteus

Nedenler

Proteusu da değiştirdim. 7.7'ydi 8 kurdum. CCS C'nin üç dört farklı sürümünü kurdum denedim. Sorun devam ediyor.
Allah rızası için biri şu kodu derleyip gönderebilir mi valla kanser olucam :)

sadogan

Debug modda çalışmadı .
kesme rutinini output_toggle(pin_b1); ekledim  similasyonda çalışıyor.

Nedenler

Oh şükürler olsun. Son çare olarak kalkıp Karaköy'e gidip alacaktım bir tane pic.
Ben çalışacağını düşünerek programa devam ediyorum o zaman kart üzerinde yaparım denemelerimi.

Son olarak kullandığınız derleyici ve proteus sürümü nedir hocam. Bir de onlara bakayım.
Herkese çok teşekkürler :)

sadogan

#7
Proteus 7.10
CCS 5.025
Kolay gelsin :)

mesaj birleştirme:: 19 Eylül 2014, 15:40:23

Şimdi gerçek devrede denedim sorun yok

Nedenler

Çözümü "CCS 5.025"de buldum. Aynı kodu bununla derleyince çalıştı.
Gelecekte benzer sıkıntılar yaşayacaklara duyurulur.