Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: yahya255 - 23 Temmuz 2013, 10:39:40

Başlık: atmega128 ile lcd programımdaki bir sıkıntım
Gönderen: yahya255 - 23 Temmuz 2013, 10:39:40
Merhaba;

Arkadaşlar 16x2 lcd miz var bu lcdnin menüleri var ve bu menülerde mikroişlemci girişlerine göre değişen değişkenler var atıyorum ARIZA - NORMAL bunları çalıştırıyorum ancak bir menüde girişlerin sürelerini tutmam gerekti yani bir sayaç hazırlıyorum ve program orda döngüde kalıyor. Benim istediğim o döndüdeyken ben diğer işlemleri yapıyım bunu nasıl halledebiliriz.

MOD NOTU:
Mesaj başlığınız forum kurallarına uygun değildir.
Lütfen düzeltiniz...
Başlık: Ynt: Program ile alakalı acil yardım
Gönderen: camby - 23 Temmuz 2013, 10:57:08
kesme bu gibi işleri halleder.

Ama istediğiniz açıklayıcı değil ve kod da yok.
Başlık: Ynt: Program ile alakalı acil yardım
Gönderen: Kabil ATICI - 23 Temmuz 2013, 11:05:49
İşlerin ana döngüde çokça kalıyorsa, orada sayıcı koyabilirsin ve her geçtiğinde sayıcıyı 1 artırı ve istediğin değeri geldiğinde istediğin işlemi yaptırırsın.

Diğer yöntem @Cambb belirttiği gibi timer kesmelerini kullanmaktır. Elbette bu timer'ları nasıl başlatılıp durdurulduğunu biliyorsunuz.

Programın, şeman kıymetli, hiç değilse işlemcinin adını belirtseydiniz.
Başlık: Ynt: Program ile alakalı acil yardım
Gönderen: yahya255 - 23 Temmuz 2013, 14:53:11
Özür diliyorum önemli hiç birşey yok zaten açık kaynak herşey  :)  kod biraz uzun ama yinede paylaşıyım burda program bilgim çağresiz kaldı zaten yeni sayılırım bu işlerdede.
Yapamadığımı söyliyim size
1. si ekran fonksiyonlarında program takılı kalıyor yani atıyorum bir ekran fonksiyonuna girdiğinde bir girişten herhangi bir sinyal geldiğinde o değişikliği algılayamıyor.
2. si ise dediğim gibi giriş sürelerini tutmak ve lcd de göstemek istiyorum saat dakika formatında ancak bir sayaç hazırlayınca sadece o sayaçda dönüp duruyor program :) ben ayrı ayrı 22 girişinde aktif çalışma sürelerini tutmak istiyorum.  İşlemci atmega128 dir.

İlgilendiğiniz için bu arada teşekkür ediyorum.

#include <avr/io.h> // Avr itlemci giris/cikis (port)kutuphanesi
#include <util/delay.h> // Gecikme kutuphanesi
#include <stdio.h>
#include <stdbool.h>
#include "lcd.h" // lcd kutuphanesi

volatile unsigned int qq; // jetfan1 çalışma süresi
volatile unsigned int ww; // jetfan2 çalışma süresi
volatile unsigned int ee; // jetfan3 çalışma süresi
volatile unsigned int rr; // jetfan4 çalışma süresi
volatile unsigned int tt; // jetfan5 çalışma süresi
volatile unsigned int yy; // jetfan6 çalışma süresi
volatile unsigned int uu; // jetfan7 çalışma süresi
volatile unsigned int oo; // jetfan8 çalışma süresi
volatile unsigned int pp; // jetfan9 çalışma süresi
volatile unsigned int zz; // jetfan10 çalışma süresi
volatile unsigned int dad; // jetfan11 çalışma süresi
volatile unsigned int zdz; // jetfan12 çalışma süresi
volatile unsigned int psp; // jetfan13 çalışma süresi
volatile unsigned int zsz; // jetfan14 çalışma süresi
volatile unsigned int pjp; // jetfan15 çalışma süresi
volatile unsigned int zjp; // jetfan16 çalışma süresi
volatile unsigned int ooo; // jetfan11 çalışma süresi
volatile unsigned int ggg; // jetfan12 çalışma süresi
volatile unsigned int nnn; // jetfan13 çalışma süresi
volatile unsigned int mmm; // jetfan14 çalışma süresi
volatile unsigned int xxx; // jetfan15 çalışma süresi
volatile unsigned int qer; // jetfan16 çalışma süresi

FILE lcd_str = FDEV_SETUP_STREAM(lcd_data, NULL,_FDEV_SETUP_WRITE);

#define sure 300

void Bekle(uint16_t ms)
{
for(uint16_t x=0;x<ms;x++)
{
_delay_ms(1);
}
}
void mcu_init(void) //Giris/Cikis ayarlari
{
DDRA=0X00; // A port giriş
DDRB=0X00; // B port giriş
DDRC=0X00; // C port giriş
DDRD=0X00; // D port giriş
DDRE=0X00; // E port giriş
DDRF=0X00; // F port giriş
DDRG=0X00; // G port giriş
PORTB&=_BV(0);
PORTB&=_BV(1);
PORTB&=_BV(2);

}

void DurumMenu(void)//durum fonk.
{

unsigned char menucikisi=1;
unsigned char MenuDegeri=1;

DurumEkranbir();
Bekle(300);
lcd_setcursor(1,1);
lcd_string(">");
while(menucikisi)
{
if(bit_is_clear(PINB,1)) // Artir
{
while(bit_is_clear(PINB,1)); // Buton arkini onlemek icin.
Bekle(250);

MenuDegeri++;

if(MenuDegeri==23)MenuDegeri=1;

if(MenuDegeri==1){ DurumEkranbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeri==2){ DurumEkranbir();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeri==3){ DurumEkraniki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeri==4){ DurumEkraniki();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeri==5){ DurumEkranuc();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeri==6){ DurumEkranuc();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeri==7){ DurumEkrandort();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeri==8){ DurumEkrandort();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeri==9){ DurumEkranbes();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeri==10){ DurumEkranbes();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==11){ DurumEkranalti();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==12){ DurumEkranalti();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==13){ DurumEkranyedi();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==14){ DurumEkranyedi();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==15){ DurumEkransekiz();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==16){ DurumEkransekiz();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==17){ DurumEkrandokuz();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==18){ DurumEkrandokuz();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==19){ DurumEkranon();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==20){ DurumEkranon();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==21){ DurumEkranonbir();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==22){ DurumEkranonbir();
lcd_setcursor(0,2);lcd_string(">" );}

}
if(bit_is_clear(PINB,0)) // Azalt
{
while(bit_is_clear(PINB,0)); // Buton arkini onlemek icin.
Bekle(250);
MenuDegeri--;

if(MenuDegeri==0)MenuDegeri=22;
if(MenuDegeri==1){ DurumEkranbir();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==2){ DurumEkranbir();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==3){ DurumEkraniki();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==4){ DurumEkraniki();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==5){ DurumEkranuc();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==6){ DurumEkranuc();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==7){ DurumEkrandort();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==8){ DurumEkrandort();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==9){ DurumEkranbes();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==10){ DurumEkranbes();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==11){ DurumEkranalti();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==12){ DurumEkranalti();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==13){ DurumEkranyedi();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==14){ DurumEkranyedi();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==15){ DurumEkransekiz();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==16){ DurumEkransekiz();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==17){ DurumEkrandokuz();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==18){ DurumEkrandokuz();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==19){ DurumEkranon();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==20){ DurumEkranon();
lcd_setcursor(0,2);lcd_string(">" );}

if(MenuDegeri==21){ DurumEkranonbir();
lcd_setcursor(0,1);lcd_string(">" );}
if(MenuDegeri==22){ DurumEkranonbir();
lcd_setcursor(0,2);lcd_string(">" );}


} // while menuCikis sonu
if(bit_is_clear(PINB,2)) // çıkış
{
while(bit_is_clear(PINB,2)); // Buton arkini onlemek icin.
main();
}
} // menu sonu
}

void ArizaMenu(void) //arıza fonk.
{
unsigned char menucikisii=1;
unsigned char MenuDegerii=1;

ArizaEkranbir();
Bekle(300);
lcd_setcursor(1,1);
lcd_string(">");
while(menucikisii)
{
if(bit_is_clear(PINB,1)) // Artir
{
while(bit_is_clear(PINB,1)); // Buton arkini onlemek icin.
Bekle(250);

MenuDegerii++;

if(MenuDegerii==23)MenuDegerii=1;

if(MenuDegerii==1){ ArizaEkranbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==2){ ArizaEkranbir();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==3){ ArizaEkraniki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==4){ ArizaEkraniki();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==5){ ArizaEkranuc();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==6){ ArizaEkranuc();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==7){ ArizaEkrandort();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==8){ ArizaEkrandort();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==9){ ArizaEkranbes();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==10){ ArizaEkranbes();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==11){ ArizaEkranalti();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==12){ ArizaEkranalti();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==13){ ArizaEkranyedi();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==14){ ArizaEkranyedi();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==15){ ArizaEkransekiz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==16){ ArizaEkransekiz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==17){ ArizaEkrandokuz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==18){ ArizaEkrandokuz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==19){ ArizaEkranon();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==20){ ArizaEkranon();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==21){ ArizaEkranonbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==22){ ArizaEkranonbir();
lcd_setcursor(1,2);lcd_string(">" );}

}
if(bit_is_clear(PINB,0)) // Azalt
{
while(bit_is_clear(PINB,0)); // Buton arkini onlemek icin.
Bekle(250);
MenuDegerii--;

if(MenuDegerii==0)MenuDegerii=22;
if(MenuDegerii==1){ ArizaEkranbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==2){ ArizaEkranbir();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==3){ ArizaEkraniki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==4){ ArizaEkraniki();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==5){ ArizaEkranuc();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==6){ ArizaEkranuc();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==7){ ArizaEkrandort();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==8){ ArizaEkrandort();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==9){ ArizaEkranbes();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==10){ ArizaEkranbes();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==11){ ArizaEkranalti();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==12){ ArizaEkranalti();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==13){ ArizaEkranyedi();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==14){ ArizaEkranyedi();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==15){ ArizaEkransekiz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==16){ ArizaEkransekiz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==17){ ArizaEkrandokuz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==18){ ArizaEkrandokuz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==19){ ArizaEkranon();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==20){ ArizaEkranon();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegerii==21){ ArizaEkranonbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegerii==22){ ArizaEkranonbir();
lcd_setcursor(1,2);lcd_string(">" );}

} // while menuCikis sonu

if(bit_is_clear(PINB,2)) // çıkış
{
while(bit_is_clear(PINB,2)); // Buton arkini onlemek icin.
main();
}
} // menu sonu
}


void SurelerMenu(void)//çalışma süreleri fonk.
{

unsigned char menucikisiii=1;
unsigned char MenuDegeriii=1;

SureEkranbir();
Bekle(300);
lcd_setcursor(1,1);
lcd_string(">");
while(menucikisiii)
{
if(bit_is_clear(PINB,1)) // Artir
{
while(bit_is_clear(PINB,1)); // Buton arkini onlemek icin.
Bekle(250);

MenuDegeriii++;

if(MenuDegeriii==23)MenuDegeriii=1;
if(MenuDegeriii==1){ SureEkranbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==2){ SureEkranbir();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==3){ SureEkraniki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==4){ SureEkraniki();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==5){ SureEkranuc();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==6){ SureEkranuc();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==7){ SureEkrandort();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==8){ SureEkrandort();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==9){ SureEkranbes();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==10){ SureEkranbes();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==11){ SureEkranalti();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==12){ SureEkranalti();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==13){ SureEkranyedi();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==14){ SureEkranyedi();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==15){ SureEkransekiz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==16){ SureEkransekiz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==17){ SureEkrandokuz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==18){ SureEkrandokuz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==19){ SureEkranon();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==20){ SureEkranon();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==21){ SureEkranonbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==22){ SureEkranonbir();
lcd_setcursor(1,2);lcd_string(">" );}

}
if(bit_is_clear(PINB,0)) // Azalt
{
while(bit_is_clear(PINB,0)); // Buton arkini onlemek icin.
Bekle(250);
MenuDegeriii--;

if(MenuDegeriii==0)MenuDegeriii=22;
if(MenuDegeriii==1){ SureEkranbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==2){ SureEkranbir();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==3){ SureEkraniki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==4){ SureEkraniki();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==5){ SureEkranuc();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==6){ SureEkranuc();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==7){ SureEkrandort();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==8){ SureEkrandort();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==9){ SureEkranbes();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==10){ SureEkranbes();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==11){ SureEkranalti();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==12){ SureEkranalti();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==13){ SureEkranyedi();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==14){ SureEkranyedi();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==15){ SureEkransekiz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==16){ SureEkransekiz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==17){ SureEkrandokuz();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==18){ SureEkrandokuz();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==19){ SureEkranon();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==20){ SureEkranon();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDegeriii==21){ SureEkranonbir();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDegeriii==22){ SureEkranonbir();
lcd_setcursor(1,2);lcd_string(">" );}

} // while menuCikis sonu

if(bit_is_clear(PINB,2)) // çıkış
{
while(bit_is_clear(PINB,2)); // Buton arkini onlemek icin.
main();
}
} // menu sonu
}

void CikisYapilandir(void)
{
lcd_clear();
lcd_setcursor(2,1);lcd_string(" CIKIS YAPI ");
Bekle(250);
Bekle(250);
Bekle(250);
Bekle(250);
}
//**************************Menü Ekranları**************************
void MenuEkran(void)
{
lcd_clear();
lcd_setcursor(1,1);lcd_string(" DURUMLAR ");
lcd_setcursor(1,2);lcd_string(" ARIZALAR ");
}
void MenuEkranIki(void)
{
lcd_clear();
lcd_setcursor(2,1);lcd_string(" CALIS SURE ");
lcd_setcursor(2,2);lcd_string(" CIKIS YAPI ");
}
void DurumEkranbir(void)
{
stdout = stdin = &lcd_str;
char *a; //jetfan1
char *s; //jetfan2

if(bit_is_set(PINE,6))
a="DEVREDE";
else
a="DEVREDISI";

if(bit_is_set(PINE,7))
s="DEVREDE";
else
s="DEVREDISI";

lcd_clear();
lcd_setcursor(2,1);printf("FAN1:%s",a);
lcd_setcursor(2,2);printf("FAN2:%s",s);
}
void DurumEkraniki(void)
{
stdout = stdin = &lcd_str;
char *d; //jetfan3
char *f; //jetfan4

if(bit_is_set(PINB,3))
d="DEVREDE";
else
d="DEVREDISI";

if(bit_is_set(PINB,4))
f="DEVREDE";
else
f="DEVREDISI";

lcd_clear();
lcd_setcursor(2,1);printf("FAN3:%s",d);
lcd_setcursor(2,2);printf("FAN4:%s",f);

}
void DurumEkranuc(void)
{
stdout = stdin = &lcd_str;
char *g; //jetfan5
char *h; //jetfan6

if(bit_is_set(PINB,5))
g="DEVREDE";
else
g="DEVREDISI";

if(bit_is_set(PINB,6))
h="DEVREDE";
else
h="DEVREDISI";

lcd_clear();
lcd_setcursor(2,1);printf("FAN5:%s",g);
lcd_setcursor(2,2);printf("FAN6:%s",h);
}
void DurumEkrandort(void)
{
stdout = stdin = &lcd_str;
char *j; //jetfan7
char *k; //jetfan8

if(bit_is_set(PINB,7))
j="DEVREDE";
else
j="DEVREDISI";

if(bit_is_set(PING,3))
k="DEVREDE";
else
k="DEVREDISI";

lcd_clear();
lcd_setcursor(2,1);printf("FAN7:%s",j);
lcd_setcursor(2,2);printf("FAN8:%s",k);
}
void DurumEkranbes(void)
{
stdout = stdin = &lcd_str;
char *l; //jetfan9
char *i; //jetfan10

if(bit_is_set(PING,4))
l="DEVREDE";
else
l="DEVREDISI";

if(bit_is_set(PIND,0))
i="DEVREDE";
else
i="DEVREDISI";

lcd_clear();
lcd_setcursor(2,1);printf("FAN9:%s",l);
lcd_setcursor(1,2);printf("FAN10:%s",i);

}
void DurumEkranalti(void)
{
stdout = stdin = &lcd_str;
char *ld; //jetfan11
char *id; //jetfan12

if(bit_is_set(PIND,1))
ld="DEVREDE";
else
ld="DEVREDISI";

if(bit_is_set(PIND,2))
id="DEVREDE";
else
id="DEVREDISI";

lcd_clear();
lcd_setcursor(1,1);printf("FAN11:%s",ld);
lcd_setcursor(1,2);printf("FAN12:%s",id);

}
void DurumEkranyedi(void)
{
stdout = stdin = &lcd_str;
char *ls; //jetfan13
char *is; //jetfan14

if(bit_is_set(PIND,3))
ls="DEVREDE";
else
ls="DEVREDISI";

if(bit_is_set(PIND,4))
is="DEVREDE";
else
is="DEVREDISI";

lcd_clear();
lcd_setcursor(1,1);printf("FAN13:%s",ls);
lcd_setcursor(1,2);printf("FAN14:%s",is);

}
void DurumEkransekiz(void)
{
stdout = stdin = &lcd_str;
char *al; //jetfan15
char *ii; //jetfan16

if(bit_is_set(PIND,5))
al="DEVREDE";
else
al="DEVREDISI";

if(bit_is_set(PIND,6))
ii="DEVREDE";
else
ii="DEVREDISI";

lcd_clear();
lcd_setcursor(1,1);printf("FAN15:%s",al);
lcd_setcursor(1,2);printf("FAN16:%s",ii);

}
void DurumEkrandokuz(void)
{
stdout = stdin = &lcd_str;
char *ll; //jetfan17
char *ld;

if(bit_is_set(PIND,7))
ll="DEVREDE";
else
ll="DEVREDISI";

if(bit_is_set(PING,1))
ld="DEVREDE";
else
ld="DEVREDISI";

lcd_clear();
lcd_setcursor(1,1);printf("FAN17:%s",ll);
lcd_setcursor(1,2);printf("FAN18:%s",ld);
}
void DurumEkranon(void)
{
stdout = stdin = &lcd_str;
char *ll; //jetfan17
char *ld;

if(bit_is_set(PING,0))
ll="DEVREDE";
else
ll="DEVREDISI";

if(bit_is_set(PINC,0))
ld="DEVREDE";
else
ld="DEVREDISI";

lcd_clear();
lcd_setcursor(1,1);printf("FAN19:%s",ll);
lcd_setcursor(1,2);printf("FAN20:%s",ld);
}

void DurumEkranonbir(void)
{
stdout = stdin = &lcd_str;
char *ll; //jetfan17
char *ld;
if(bit_is_set(PINC,1))
ll="DEVREDE";
else
ll="DEVREDISI";

if(bit_is_set(PINC,2))
ld="DEVREDE";
else
ld="DEVREDISI";

lcd_clear();
lcd_setcursor(1,1);printf("FAN21:%s",ll);
lcd_setcursor(1,2);printf("FAN22:%s",ld);
}
void ArizaEkranbir(void)
{

stdout = stdin = &lcd_str;
unsigned int q; //jetfan1
unsigned int w; //jetfan2

if(bit_is_clear(PINC,3))
q="NORMAL";
else
q="ARIZA";

if(bit_is_clear(PINC,4))
w="NORMAL";
else
w="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN1: %s",q);
lcd_setcursor(2,2);printf("FAN2: %s",w);
}
void ArizaEkraniki(void)
{
stdout = stdin = &lcd_str;
char *e; //jetfan3
char *r; //jetfan4

if(bit_is_clear(PINC,5))
e="NORMAL";
else
e="ARIZA";

if(bit_is_clear(PINC,6))
r="NORMAL";
else
r="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN3: %s",e);
lcd_setcursor(2,2);printf("FAN4: %s",r);
}
void ArizaEkranuc(void)
{
stdout = stdin = &lcd_str;
char *t; //jetfan5
char *y; //jetfan6

if(bit_is_clear(PING,2))
t="NORMAL";
else
t="ARIZA";

if(bit_is_clear(PINA,7))
y="NORMAL";
else
y="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN5: %s",t);
lcd_setcursor(2,2);printf("FAN6: %s",y);
}
void ArizaEkrandort(void)
{
stdout = stdin = &lcd_str;
char *u; //jetfan7
char *o; //jetfan8

if(bit_is_clear(PINA,6))
u="NORMAL";
else
u="ARIZA";

if(bit_is_clear(PINA,5))
o="NORMAL";
else
o="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN7: %s",u);
lcd_setcursor(2,2);printf("FAN8: %s",o);
}
void ArizaEkranbes(void)
{
stdout = stdin = &lcd_str;
char *p; //jetfan9
char *z; //jetfan10

if(bit_is_clear(PINA,4))
p="NORMAL";
else
p="ARIZA";

if(bit_is_clear(PINA,3))
z="NORMAL";
else
z="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN9: %s",p);
lcd_setcursor(2,2);printf("FAN10: %s",z);
}

void ArizaEkranalti(void)
{
stdout = stdin = &lcd_str;
char *pe; //jetfan9
char *ze; //jetfan10

if(bit_is_clear(PINA,2))
pe="NORMAL";
else
pe="ARIZA";

if(bit_is_clear(PINA,1))
ze="NORMAL";
else
ze="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN11: %s",pe);
lcd_setcursor(2,2);printf("FAN12: %s",ze);
}
void ArizaEkranyedi(void)
{
stdout = stdin = &lcd_str;
char *pa; //jetfan9
char *za; //jetfan10

if(bit_is_clear(PINA,0))
pa="NORMAL";
else
pa="ARIZA";

if(bit_is_clear(PINF,7))
za="NORMAL";
else
za="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN13: %s",pa);
lcd_setcursor(2,2);printf("FAN14: %s",za);
}
void ArizaEkransekiz(void)
{
stdout = stdin = &lcd_str;
char *ps; //jetfan9
char *zz; //jetfan10

if(bit_is_clear(PINF,6))
ps="NORMAL";
else
ps="ARIZA";

if(bit_is_clear(PINF,5))
zz="NORMAL";
else
zz="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN15: %s",ps);
lcd_setcursor(2,2);printf("FAN16: %s",zz);
}
void ArizaEkrandokuz(void)
{
stdout = stdin = &lcd_str;
char *pp; //jetfan10
char *p;
if(bit_is_clear(PINF,4))
pp="NORMAL";
else
pp="ARIZA";
if(bit_is_clear(PINF,3))
p="NORMAL";
else
p="ARIZA";

lcd_clear();
lcd_setcursor(2,1);printf("FAN17: %s",pp);
lcd_setcursor(2,2);printf("FAN18: %s",p);
}
void ArizaEkranon(void)
{
stdout = stdin = &lcd_str;
char *pp; //jetfan10
char *po; //jetfan10

if(bit_is_clear(PINF,4))
pp="NORMAL";
else
pp="ARIZA";
if(bit_is_clear(PINF,3))
po="NORMAL";
else
po="ARIZA";
lcd_clear();
lcd_setcursor(2,1);printf("FAN19: %s",pp);
lcd_setcursor(2,2);printf("FAN20: %s",po);
}
void ArizaEkranonbir(void)
{
stdout = stdin = &lcd_str;
char *p; //jetfan10
char *o; //jetfan10

if(bit_is_clear(PINF,4))
p="NORMAL";
else
p="ARIZA";
if(bit_is_clear(PINF,3))
o="NORMAL";
else
o="ARIZA";
lcd_clear();
lcd_setcursor(2,1);printf("FAN21: %s",p);
lcd_setcursor(2,2);printf("FAN22: %s",o);
}


void SureEkranbir(void)
{
stdout = stdin = &lcd_str;

if(bit_is_set(PINE,6))
{

int i;
int a=0;
for(i=0;i<10000;i++)
{

a++;
_delay_ms(1000);
lcd_clear();
lcd_setcursor(2,1);printf("FAN1: %d",a);
if(bit_is_clear(PINE,6))break;
}
}
else
{
lcd_clear();
lcd_setcursor(2,1);printf("FAN1: %d",qq);
}

}
void SureEkraniki(void)
{
stdout = stdin = &lcd_str;

lcd_setcursor(2,2);printf("FAN2: %d",ww);
lcd_clear();
lcd_setcursor(2,1);printf("FAN3: %d",ee);
lcd_setcursor(2,2);printf("FAN4: %d",rr);
}
void SureEkranuc(void)
{
stdout = stdin = &lcd_str;


lcd_clear();
lcd_setcursor(2,1);
printf("FAN5: %d",tt);
lcd_setcursor(2,2);
printf("FAN6: %d",yy);
}
void SureEkrandort(void)
{
stdout = stdin = &lcd_str;


lcd_clear();
lcd_setcursor(2,1);
printf("FAN7: %d",uu);
lcd_setcursor(2,2);
printf("FAN8: %d",oo);
}
void SureEkranbes(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN9: %d",pp);
lcd_setcursor(2,2);
printf("FAN10: %d",zz);
}

void SureEkranalti(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN11: %d",dad);
lcd_setcursor(2,2);
printf("FAN12: %d",zdz);
}

void SureEkranyedi(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN13: %d",psp);
lcd_setcursor(2,2);
printf("FAN14: %d",zsz);
}

void SureEkransekiz(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN15: %d",pjp);
lcd_setcursor(2,2);
printf("FAN16: %d",zjp);
}

void SureEkrandokuz(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN17: %d",ooo);
lcd_setcursor(2,2);
printf("FAN18: %d",ggg);
}
void SureEkranon(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN19: %d",nnn);
lcd_setcursor(2,2);
printf("FAN20: %d",mmm);
}

void SureEkranonbir(void)
{
stdout = stdin = &lcd_str;

lcd_clear();
lcd_setcursor(2,1);
printf("FAN21: %d",xxx);
lcd_setcursor(2,2);
printf("FAN22: %d",qer);
}


//***************** ANA MENU FONKSIYONU ******************
void Menu(void)
{
unsigned char menucikis=1;
unsigned char MenuDeger=1;
MenuEkran();
Bekle(300);
lcd_setcursor(1,1);
lcd_string(">");
while(menucikis)
{
if(bit_is_clear(PINB,1)) // Artir
{
while(bit_is_clear(PINB,1)); // Buton arkini onlemek icin.
Bekle(250);
MenuDeger++;
if(MenuDeger==5)MenuDeger=1;
if(MenuDeger==1){ MenuEkran();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDeger==2){ MenuEkran();
lcd_setcursor(1,2);lcd_string(">" );}

if(MenuDeger==3){ MenuEkranIki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDeger==4){ MenuEkranIki();
lcd_setcursor(1,2);lcd_string(">" );}


}
if(bit_is_clear(PINB,0)) // Azalt
{
while(bit_is_clear(PINB,0)); // Buton arkini onlemek icin.
Bekle(250);
MenuDeger--;
if(MenuDeger==0)MenuDeger=1;
if(MenuDeger==1){ MenuEkran();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDeger==2){ MenuEkran();
lcd_setcursor(1,2);lcd_string(">" );}
if(MenuDeger==3){ MenuEkranIki();
lcd_setcursor(1,1);lcd_string(">" );}
if(MenuDeger==4){ MenuEkranIki();
lcd_setcursor(1,2);lcd_string(">" );}
}
if(bit_is_clear(PINB,2)) // Giris
{
while(bit_is_clear(PINB,2)); // Buton arkini onlemek icin.

if(MenuDeger==1)
{
DurumMenu(); Bekle(250);menucikis=0;
}
if(MenuDeger==2)
{
ArizaMenu(); Bekle(250);menucikis=0;
}
if(MenuDeger==3)
{
SurelerMenu(); Bekle(250);menucikis=0;
}
if(MenuDeger==4)
{
CikisYapilandir(); Bekle(250);menucikis=0;

}
} // OK tus sonu
} // while menuCikis sonu
} // menu sonu
int main(void)
{

mcu_init(); // işlemci port kurumulu.
lcd_init(); // Lcd on hazirlik

while(1)
{
lcd_clear();
lcd_setcursor(0,1);lcd_string( " MAVI OTOMASYON ");
lcd_setcursor(1,2);lcd_string( " HOSGELDINIZ ");
if(bit_is_set(PINB,2)) // giris tusu
{
while(bit_is_set(PINB,2)); // Buton arkini onlemek icin.
Menu();
}



} // while dongu sonu.
} // main dongu sonu.
Başlık: Ynt: atmega128 ile lcd programımdaki bir sıkıntım
Gönderen: Kabil ATICI - 23 Temmuz 2013, 15:42:15
Bacak kontrolunu timer'a bağayabilirsin.
ikinci olarak 1 tane timer ile 22 tane sayacıda kontrol edebilirsin.
22 tane bayrak ve sayac (örneğin bayrak1, bayrak2...ve sayac1, sayac2,..) ata. örneğin bayraklara 1 ata sayaclara 0 ata.
entegre bacağı senin istediğin duruma geldiğinde bu bayrağı 0 yap.
Tek yapman gereken bu bayrağı timer içinde kontrol etmek ve sayacının değeri artırmak.

timer1 kesmesi:
bayrak1 0 ise
sayac1 =sayac1+1
eğer sayac1=20 ise
bayrak1=1
.
.
.
istiyorsan timer1'e girdiğinde burada bacaklarıda kontrol edebilirsin..

bu sayede sen nerede ne iş yaparsan yap bu işlem yürütülmüş olur..
Başlık: Ynt: atmega128 ile lcd programımdaki bir sıkıntım
Gönderen: yahya255 - 23 Temmuz 2013, 18:11:59
Çok teşekkür ediyorum cevabınız baya aydınlatıcı oldu şimdi atmega128 in bilgi kitabından timer larla alakalı bölümü çözmeye çalışıyorum sıkıntı çıkarsa tekrar yazıcam burdan. Teşekkürler.
Başlık: Ynt: atmega128 ile lcd programımdaki bir sıkıntım
Gönderen: yahya255 - 25 Temmuz 2013, 11:05:00
Arkadaşlar timer kullanımına biraz örnek verebilir misiniz yani giriş e göre sayaç olarak kullanımına ben nette araştırıyorum fakat pek bir şey bulamadım genelde PWM üretmek amaçlı kullanıyorlar. Birde program kesmeye gittiğinde normal akışını da devam ettirebilecek mi ?