pic try except

Başlatan Yuunus, 05 Aralık 2011, 00:48:58

Yuunus

Merhaba, pic de hata yönetimi varmı? Bu iş win ortamında; çeşitli derleyicilerde çeşitli şekilde yapılıyor, öneğin cpp de try {} catch şeklinde yapılıyor...merak ettiğim nokta ise bu hata yönetimi pic lerde varmı 24F serisinde olduğunu duymuştum...18F4550 de de varmı varsa nasıl kullanılıyor.

örneğin aşağıdaki kod parçasında oluşabilecek bir hata durumunda ekrana hata mesajı yazdırmak istesem bunu nasıl yapmalıyım?
while(True)   
   {
      set_adc_channel(5);
      delay_us(1);             
       bilgi=read_adc();     
   }

t2

Durumun bir hata olduğunu anlayabilecek interrupt,  iş görebilir.

burak_82

ARM'daki Exception tarzı birşey arıyorsanız o tarz bişey yok. Fault biti olan kısımlarda -örneğin seri haberleşme frame error gibi ya da I2C acknowledge- kısımlarda kendiniz yapabilirsiniz. Ancak ADC de donanımsal hatayı denetleyen bir bit yok sanırım.

Yuunus

   ADC yi örnek olsun diye yazdım, başka bir örnek te olabilirdi, zaten her kod bloğunu try ile kontrol edecek bir denetim beklemiyorum zaten ; bir chipten çok fazla şey beklemek olur ancak hata ile karşılaştığında pic nasıl  davranıyor...örneğin reset mi atıyor. Denetimini yaptığı kesme ile ilgili bir örnek verebilirseniz daha açıklayıcı olur.Teşekkür ederim.

Yuunus

Merhaba, 18F4550 ye bootloader ile kod yükleyemiyorum Mc v2.2 hid bootloader kullanıyorum nereye baksam aşağıdaki kesmeleri yaz yükler diyor ama beceremedim. hazır bulduğum hex kodlarını gayet güzel yüklüyorum ama benim ccs den derlediğim hex'i yükleyemiyorum.

#include <18F4550.h>
#device ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOBROWNOUT,NOMCLR // 8MHZ
#use delay(clock = 48000000)

#build (reset=0x200)
#build (interrupt=0x208)
#org 0x0000,0x01ff
void bootloader() {
#asm
  nop
#endasm
}

#define USB_HID_DEVICE     TRUE             
#define USB_EP1_TX_ENABLE  USB_ENABLE_INTERRUPT
...
------------------------------------------------------------------------------------------------------
aşağıdaki de olmadı

#build(reset=0x1000, interrupt=0x1008)
#ORG 0x0000,0x0FFF {}
void bootloader()
{
#asm
nop
#endasm
}

bu da olmadı

#build (reset=0x1008,interrupt=0x1018)
#org 0x0000,0x0FFF {}

birde reset=0x800 lü bir kod vardı oda olmadı neyapsam acaba ? Hocaya filan mı okutsam !!! anlayan varse help mee...

Yuunus

Teşekkür ederim gerbay, bootloader konusuna bir yorumun var mı? neden kaynaklanıyor bootloader ile yüklüyorum hex'i yükledim sorun yok diyor ama pic saçmalıyor.