1sn içindeki artış sayısı

Başlatan Cetinal, 17 Haziran 2007, 16:59:28

Cetinal

işlemciye bağladığım encoderin 1 sn deki devir sayısını ölçmek istiyorum
x değişkeni belirledim mesela 1 saniye içinde encoderdin a çıkışından gelen her pals de x i bir arttırıp o değeri ordan almak istiorum ama şu timer olyını halledemedim (int ucunu kullanıom bu arada);

controller

öncelikle hangi avr ile çalışıyorsun. çünkü farklı avr modellerinde farklı sayıda ve özellikte timerlar var (8bit, 16bit gibi). yazacağın program temel olarak her 1 saniyede x değişkenini daha sonra kullanmak için başka bir değişkene atıp x değişkenini sıfırlamaktır. timer olayında nerede sorun yaşıyorsun?
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

Cetinal

aslında avr deil işlemci

atmel 89c51 veya 2051 filan dı yani keil ile yapmaya çalışıodum

ben timeri alt programını yazamadım

int ucundan gelen pals sinyaline göre 1 saniye içinde ki pals sayısı ile bir değişkeni arttırıp sonra onu başka yerde kullanacaktım

controller

şu ana kadar yazdığın kodu gönderirsen inceleyebiliriz.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

bmutlu

8051 lerde 2 timer vardir timer0 ,timer1 bu timerler ayni zamanda counter olarak ta kullanilmaktadirlar timerden birini 1 sn sure uretiminde kullan digerini counter olarak kullan palsi say (uygun portlardan encoder palsini girerek).

Cetinal


#include <at892051.h>          
#include <stdio.h>               
unsigned int	devir;
unsigned char yon;       

void main ()
{
	SCON  = 0x50;		      
	TMOD |= 0x20;           
	TH1  = 0xFD;            
	TR1   = 1;        
	TI    = 1;                  
while(1){
while(P3_2==1){
if(P3_4==0){
yon='I';
devir++;
printf("%c:%d\n",yon,devir);
}}}}


işte ordaki devir sayısı 1 sn içindeki ni almam lazım orası olmadı