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
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
program pici göremiyor galiba tam anlamadım
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);
}