Pic12F629'da T0 kesmesi ile kare dalga elde edilmesi

ibora

Usta Üye
Katılım
14 Eyl 2008
Mesajlar
1,203
Puanları
156
Yaş
56
Arkadaşlar merhaba,
Amacım GP0 ucundan 36KHz kare dalga elde etmek. Bunun için T0 kesmesini kullandım ve aşağıdaki programı yazdım ama çalıştıramadım. Bir göz atarmısınız, nerede hata yapmışım... İlginiz için teşekkürler...
*************************
#include <12F629.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOCPD //No EE protection
#FUSES NOPROTECT //Code not protected from reading
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPUT //No Power Up Timer
#FUSES NOBROWNOUT //No brownout reset
#use delay(clock=20000000)
#int_TIMER0
void TIMER0_isr(void)
{
set_timer0 (69);
output_toggle(pin_A0);
}

void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
//setup_ccp1(CCP_OFF);
setup_comparator(NC_NC);
setup_vref(FALSE);
set_timer0 (69);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);

}
 
Kod:
#include <12F629.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOCPD //No EE protection
#FUSES NOPROTECT //Code not protected from reading
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPUT //No Power Up Timer
#FUSES NOBROWNOUT //No brownout reset
#use delay(clock=20000000)
#int_TIMER0
void TIMER0_isr(void)
{
   set_timer0 (69);
   output_toggle(pin_A0);
}

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   //setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   set_timer0 (69);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);

   [COLOR="#FF0000"]for(;;);//programı sonsuz döngüye sokmanız lazım[/COLOR]

}
 
Sonsuz döngüyü de denedim, maalesef olmadı
 
MCLR'yi 10 K ile 5V'a çekince problem düzeldi. Yardımlar için teşekkürler...
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…