Pic 18f46k22 Timer 1 ile uyanmıyor?

Sadece asenkron sayıcı modunda çalıştığında uyanacağı yazıyor. Maddeler halinde yazan ayarlamaları yaptıysan ve asenkron sayıcı modu ile ilgili ayarlamaları tam olarak yaptıysan uyandırması lazım yukarıdaki ifadeye göre. Galiba ya picde bi sıkıntı var ya da çok ufak birşeyi atlıyorsunuz.
 
Hocam CCS ile yaptığım için

ext_int_edge(0, L_to_H);
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1); //2.0 s overflow
set_timer1(0); // TMR1 değeri belirleniyor
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_EXT1);
enable_interrupts(GLOBAL);
olarak ayarlamaları yazıyorum. Yani bir problem olmaması lazım ama çözemedim. Nedir bu işin sırrı ,bilen vardır elbet bu forumda inşallah öğrenip bir çözüm buluruz.
 
inşallah hocam. bende bi sakin kafayla düşüneyim bakalım sıkıntıyı bulabilecekmiyiz.
 
inşallah hocam. bende bi sakin kafayla düşüneyim bakalım sıkıntıyı bulabilecekmiyiz.
Sağolun gerçekten düşünüp kafa yorduğunuz için çok teşekkürler.Emeğinize sağlık.
 
Rica ederim hocam ne demek. Sizin bu sorunuz sayesinde araştırma yaparken bende bir iki şey öğrendim. Kolay gelsin iyi çalışmalar
 
Hocalarım arkadaşlar açtığım konunun üzerine düşünüp kafa yoran datasheet e kadar inceleyip cevap veren ustalarıma teşekkürler. Sorunu çözdüm ama nasıl olduğunu anlamadım bende :)
Sanırım problem kullandığım sürümde. Sürümü biraz uğraşıp baya değiştirdim. Aynı dosyayı derleyince olmadı. Wizard ile yeni proje yaptım kodlar aynı olmasına rağmen çalıştı. Sanırım bir derleyici bug'ı buldum:) Benden sonra uğraşacak arkadaşlar için kodu paylaşıyorum.




#include <silinecek.h>

#INT_TIMER1
void TIMER1_isr(void)
{
output_toggle(pin_a0);
}

#INT_EXT
void EXT_isr(void)
{

}
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#include <lcd.c>
#include<kbd.c>
void main()
{
char k;

setup_timer_1(T1_EXTERNAL|T1_DIV_BY_8); //2,0 s overflow


enable_interrupts(INT_TIMER1);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);

lcd_init();

lcd_putc("\fReady...\n");

while(TRUE)
{
k = kbd_getc();
if(k!=0)
if(k=='*')
lcd_putc('\f');
else
lcd_putc(k);

//TODO: User Code
}

}
 
Hocam çok sağolun.
Est.Demek sorun derleyiciden kaynakliymis. Bakalim daha neler öğreneceğiz:)
Kullandiginiz derleyici bilgilerini de paylasir misiniz...Sizden sonra ayni sorunla karsilasanlar icin yardimi dokunur.
 
Son düzenleme:
Est.Demek sorun derleyiciden kaynakliymis. Bakalim daha neler öğreneceğiz:)
Kullandiginiz derleyici bilgilerini de paylasir misiniz...Sizden sonra ayni sorunla karsilasanlar icin yardimi dokunur.
Hocam kusura bakmayın ben bir an heyecan yapıp kaptırmışım kendimi olmadı yine ne derleyici ne baska bir şey. CCS ile bu konuda hemen herşeyi denedim yok Hatta 18f46k20 ye geçtim yine olmuyor. Timer 1 sadece RB0 kesmesi gibi diğer kesmelere girince artıyor. Ne soruna yorum yapabiliyorum ne de cevap benden buraya kadar artık başka birşeyler bakacağım :(
 
@themumy_10 gerçekten baya emek sarfettiniz üstadım bırakmayın araştırmaya devam edin bence
 

Forum istatistikleri

Konular
130,162
Mesajlar
933,853
Kullanıcılar
453,275
Son üye
hamit.aktas

Yeni konular

Geri
Üst