tinybootloader ile bootloader sorunu yardım!!!

nanit

Üye
Katılım
21 Ocak 2011
Mesajlar
159
Puanları
1
Yaş
32
arkadaşlar tinybootloader ile pic16f877a picini bootload etmeye çalışıyorum.Tinybootload programı içerisindeki hex dosyasını yükleyip bootload edebiliyorum fakat 2. kez bootload ettiğimde hata alıyorum
program pici göremiyor galiba tam anlamadım
dP11Jr.png


galiba ön işlemci komutlarında hata yapıyorum bootloader kodlarının üzerine yazıyorum bilemedim sorun nedir bilen biri yardım ederse sevinirim
Kod:
#include <16F877A.h>
#fuses HS,NOPROTECT,NOLVP,NOWDT,NOCPD,
#use delay(clock=20000000)
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)



//Bu alttaki iki satırı ekliyoruz.

#define MAX_FLASH 0x2000

#define LOADER_SIZE 0xFF   //tinybld size + a bit more (200 bytes is enough)

#org LOADER_SIZE , MAX_FLASH-1 {}


#use fast_io(a)

int16 i=0;
#int_rda   // RX ucuna veri gelince meydane gelen kesme
void serihaberlesme_kesmesi ()
{
   disable_interrupts(int_rda); // int_rda kesmesini pasif yap
   output_high(pin_c5);  // RC5 çyky?y lojik-1
   
   output_low(pin_c5);
   //printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satyr atla, yeni satyr,RS232 üzerinden belirtilen metni gönder
}

void main()
{
 setup_psp(PSP_DISABLED);        // PSP birimi devre dy?y
   setup_timer_1(T1_DISABLED);     // T1 zamanlayycysy devre dy?y
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayycysy devre dy?y
   setup_adc_ports(NO_ANALOGS);    // ANALOG giri? yok
   setup_adc(ADC_OFF);             // ADC birimi devre dy?y
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dy?y
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dy?y
   set_tris_a(0xff);
   output_low(pin_c5); // RC5 çyky?y ilk anda syfyrlanyyor
  // LCD'yi hazyrla

  // printf("\rbasladi"); // Yeni satyr, RS232 üzerinden belirtilen metni gönder ve satyr atla.
 
   enable_interrupts(GLOBAL);  //
   while(1)
   {
    clear_interrupt(int_rda);
      enable_interrupts(int_rda);
     
        set_tris_b(0x00);
        //~18,0 ms reset
       output_b(0x00);
       if(input(pin_a1))
       {
        for(i=0;i<400;i++){
       
             output_high(pin_b0);
             delay_ms(100);
             output_low(pin_b0);
             delay_ms(100);
       
        }
     
 
       }}
     
       //TODO: User Code
 
  //while(1);
}
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,241
Kullanıcılar
449,838
Son üye
sarioglu_55

Yeni konular

Geri
Üst