Atmega8 serisi için lütfen yardım edin....Büyük hocalarıma soru.

raconcu

Üye
Katılım
6 Eki 2007
Mesajlar
12
Puanları
1
Yaş
39
Öğrenciyim ve atmel atmega8 serisini C ile programlamaya merak sardım.Program ve derleyici olarak avr stuio 4 ve winavr'yi kullanıyorum.Yapmak istediğim program PB0'nın 18 dk boyunca lojik 1 olmasını sağlamak daha sonrada yine PB0'ın 8 saniye boyunca lojik 0 olarak kalmasını sağlamak işlem sonsuz döngü halinde devam edecektir. yazdığım program şu geciktirme'de takıldım.

#include <avr/io.h>

#define F_CPU 4000000UL

#include <util/delay.h>

void main()

{

DDRB = 0xFF;

PORTB = 0x00;

do{

PORTB = 0x01;

_delay_ms(1080000);

PORTB = 0x00;

_delay_ms(480000);

}while(1);

return 0;

}

gecikme komutunu düzgün yapamıyorum.Lütfen yardım edin acemiyim yeni öğreniyorum şimdiden çok teşekkür ederim.
 
_delay_ms fonksiyonunun kullandığı değişken 480000 ve 1080000 sayısını
tutamıyor olabilir.
Aşağıdaki şekilde dene:

Kod:
#include <avr/io.h>

#define F_CPU 4000000UL

#include <util/delay.h>

unsigned int i; //16bit değişken

void main()
{

DDRB = 0xFF;
PORTB = 0x00;

while(1)
{
PORTB = 0x01;

for(i=0; i<4320; i++)
_delay_ms(250);

PORTB = 0x00;

for(i=0;i<32;i++)
_delay_ms(250);
}

return 0;

}
 
tyildizak hocam öncelikle yardımın için çok teşekkür ederim.Programı avr ile derledim isis'te devreyi kurdum crystal bağlantıyı da 4mhz olarak yaptım.Senin verdiğin programın hex dosyasınıda gösterip devreyi çalıştırdım.Ancak 18 dk dolduğunda Pb0 hala lojik 1'di. 18 dk sonunda yapması gerekn 8 sn sürecek lojik 0 olmadı.Daha sonra programı avr studio 4 ile koşturttum ordada port hep lojik 1'di.Sanırım hala bir hata var.
 
Hocam programda bir hata yok proteusta simulasyon yaparken bekledim.19 dakika 29 saniyede program pb0'ı lojik 0 yaptı.Büyük ihtimal similasyon sapıtıyor değerler doğru kart üzerinde düzgün çalışması lazım demi?Sayende kendime yeni bişeyler daha kattım hocam sana çok teşekkür ederim similasyon hakkındaki düşüncelerinide bekliyorum.
 
tyildizak hocam kartı en kısa sürede kuracağım durumdan haberder ederim.Zamanlamanın düzgün çalışacağını umuyorum.
 
tyildizak hocam verdiğin programda isis'teki gib 1.30 dakikalık gecikme oluyor bunu nasıl çözebiliriz?
 
tyildizak hocam senden rica etsem bu programı timer ile yazabilirmisin?Şimdiden çok teşekkür ederim sana ilgilendiğin için.
 
Bildiklerimden yola çıkarak 1 saniyelik bir sayıcı (veya hassasiyetiniz ne ise) yapıp senaryoyu sayıcının aktüel değerine göre tasarlarsanız. Gecikmelerde Loop un tıkanmasını önler aynı değişken adlarını farklı koşullarda kullanabilirsiniz.
 

Forum istatistikleri

Konular
128,158
Mesajlar
915,531
Kullanıcılar
449,905
Son üye
smartnet

Yeni konular

Geri
Üst