Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: Cetinal - 17 Haziran 2007, 16:59:28

Başlık: 1sn içindeki artış sayısı
Gönderen: Cetinal - 17 Haziran 2007, 16:59:28
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);
Başlık: 1sn içindeki artış sayısı
Gönderen: controller - 18 Haziran 2007, 00:06:49
ö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?
Başlık: 1sn içindeki artış sayısı
Gönderen: Cetinal - 18 Haziran 2007, 00:49:36
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
Başlık: 1sn içindeki artış sayısı
Gönderen: controller - 18 Haziran 2007, 20:17:59
şu ana kadar yazdığın kodu gönderirsen inceleyebiliriz.
Başlık: 1sn içindeki artış sayısı
Gönderen: bmutlu - 19 Haziran 2007, 11:11:45
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).
Başlık: 1sn içindeki artış sayısı
Gönderen: Cetinal - 20 Haziran 2007, 08:39:57
(http://img440.imageshack.us/img440/3157/adszzu8.jpg)
#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ı