TMR1 kendini otomatik nasıl sıfırlar?

Başlatan pcb, 04 Temmuz 2010, 20:45:17

pcb

timer1 i tekrar saydırmak için PIR1.0=1 ise 0 yapıyorum tekrar sayma başlıyor. İstediğim kendi kendini sıfırlaması. TMR1H 255 olduğunda tekrar saymaya başlasın.
Nasıl yapılabilir acaba ?

picmanya

timerX sayma süresi dolunca flagı'nı 1 yapar bunu sıfırlamazsan tekrar saymaya başlamaz.
bunu 0 iki en bilindik yöntemle yapabilirsin while(1); ana program döngün içinde bu flag'ı kontrol edip 1 ise 0 yaparsın yada daha garanti o timer'in kesmesini kullanarak kesme içinde flag'ı 0 yaparsın bu yöntem yazılmış zaten.

Tagli

#2
Kesme oluşması timer'ları durdurmaz ki... Zaten 0 olduklarında kesme üretirler ve saymaya devam ederler. Bayrağı 0 yapmak gereklidir, o ayrı mesele. Yoksa kesmeden çıkmanla tekrar girmen bir olur, sonsuza kadar orada döner durursun.

Düzeltme: "0 olduklarında kesme üretirler" ifadesi pek doğru değil. Kesmeyi "255'ten (veya 65535'ten) 0'a taştıklarında" üretirler. Timer register'ı içine 0 yazmak kesmeye sebep olmaz.
Gökçe Tağlıoğlu

OG

Alıntı yapılan: picmanya - 04 Temmuz 2010, 21:57:48
timerX sayma süresi dolunca flagı'nı 1 yapar bunu sıfırlamazsan tekrar saymaya başlamaz.
sayma devam eder.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.