Merhaba arkadaşlar, pic 16F84A + 2x16 LCD(HD44780) kullanıyorum. HI-TECH'in kendi delay,lcd,pic vs include dosyalarını kullanıyorum. PIC--LCD RB0--11(D4) RB1--12(D5) RB2--13(D6) RB3--14(D7) RA2--4(RS) RA3--6(E) LCD : 1(Vss)--GND 5(R/W)--GND Beslemeler vs tamam. Aşagıdaki kodu yuklesem de ekranda sadece ust satır komple yanıyor. Sonra başka bişey yazmıyor.Bir arkadaşım reset olmuyor diyor.Sorun nerede?HI-TECH'ın lcd.c dosyası ya da DelayUs ve DelayMs fonksiyonları mı düzgün çalışmıyor?
Şimdilik sadece ekrana Temp= yazdırmak istiyorum bunu bile yapmıyor.Daha ileride sıcaklık ölçüp yazdıracam:)
ARKADAŞIM SEN YİNEDE EKRANA BİRŞEYLER YAZDIRMIŞSIN.BEN ONUDA BECEREMEDİM.BENDE LCD Yİ YENİ ÖĞRENİYORUM.LCD KONUSUNDA İYİ OLAN ARKADAŞLARIN YARDIMLARINI BEKLİYORUM.
lcd.c lcd.h delay.c delay.h
bu dosyaları include klasörünün içine kopyaladın mı?
bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.
ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
quote:
Orijinalden alıntı: psiko
lcd.c lcd.h delay.c delay.h
bu dosyaları include klasörünün içine kopyaladın mı?
bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.
ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?
quote:
Orijinalden alıntı: psiko
birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?
Alıntıları Göster
CCS nin derleyicisini kullnasan yardım edebilirdsim ama HiTech konusunda bişey diyemiyecem ama
unsigned char display[]="Temp= ";
bu tanımlamada bir hata yok değilmi yani hatasız derleniyormu program
unsigned char display[7]="Temp= "; şeklinde dizi boyutunu tanımlamak gerekir gibime geliyor. Yoksa compiler kendisi otomatikmi ayarlıyor
quote:
Orijinalden alıntı: rafet32
CCS nin derleyicisini kullnasan yardım edebilirdsim ama HiTech konusunda bişey diyemiyecem ama
unsigned char display[]="Temp= ";
bu tanımlamada bir hata yok değilmi yani hatasız derleniyormu program
unsigned char display[7]="Temp= "; şeklinde dizi boyutunu tanımlamak gerekir gibime geliyor. Yoksa compiler kendisi otomatikmi ayarlıyor
Alıntıları Göster
o tanımlamada hata yok. orası doğru :D
quote:
Orijinalden alıntı: psiko
birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?
Alıntıları Göster
quote:
Orjinalden alıntı: psiko
birşey daha var. 3 numaralı VEE bacağına 10k'lık POT bağladın mı? ya sen devreyi gerçekten yapıyor musun yoksa Proteus ile simülasyon mu yapıyosun?
Pot da koymuştum.Simulasyon değil.devreyi protoboardda denedım olmadı.
quote:
Orijinalden alıntı: psiko
lcd.c lcd.h delay.c delay.h
bu dosyaları include klasörünün içine kopyaladın mı?
bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.
ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
quote:
Orjinalden alıntı: psiko
lcd.c lcd.h delay.c delay.h
bu dosyaları include klasörünün içine kopyaladın mı?
bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.
ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
O dosyalar zaten include içinde olmasa zaten derleyici bulamadım diye hata veriyor...
quote:
Orijinalden alıntı: trigger
quote:
Orjinalden alıntı: psiko
lcd.c lcd.h delay.c delay.h
bu dosyaları include klasörünün içine kopyaladın mı?
bir de lcd_init() ten sonra DelayMs(100) koyarsan iyi olur.
ayrıca programın bu halinde stdio.h dosyasına ihtiyaç yok ama "Temp= " yazısının yanına sıcaklık değerini ekleyeceğin zaman ihtiyacın olacak.
O dosyalar zaten include içinde olmasa zaten derleyici bulamadım diye hata veriyor...
Alıntıları Göster
Bir de netten şunu öğrendim.Galiba bu LCDnin üst satırının komple yanması test ekranıymış.lcd_init()ten sonra delay koyacagım deneyeceğim...
quote:
Orijinalden alıntı: trigger
Bir de netten şunu öğrendim.Galiba bu LCDnin üst satırının komple yanması test ekranıymış.lcd_init()ten sonra delay koyacagım deneyeceğim...
Alıntıları Göster
yani derleyici hata vermiyor. normal derleniyor ama devre çalımıyor öyle mi. o zaman yukarda dediğim gibi lcd_init() den sonra dleay koy 100ms. öyle bir dene bakalım olacak mı...
quote:
Orijinalden alıntı: psiko
yani derleyici hata vermiyor. normal derleniyor ama devre çalımıyor öyle mi. o zaman yukarda dediğim gibi lcd_init() den sonra dleay koy 100ms. öyle bir dene bakalım olacak mı...
Alıntıları Göster
İnternette aynı tür sorunu olan bayagı bir kişi var.Onlar da sorunlarına yanıt alamamışlar.Üst satır komple blok halinde çalışıyor.Alt satır boş.Galiba bu tipik bir lcd test ekranıymış.Galiba lcd_init() oluyo ama lcd_clear() çalışmıyor.Arada 100 ms delay koydum yine olmadı.Ne yapmak lazım lcd.c deki delayleri mi değiştirecez?Bunu da denedim bazılarını arttırdım biraz yine bişey değişmedi.
quote:
Orijinalden alıntı: trigger
İnternette aynı tür sorunu olan bayagı bir kişi var.Onlar da sorunlarına yanıt alamamışlar.Üst satır komple blok halinde çalışıyor.Alt satır boş.Galiba bu tipik bir lcd test ekranıymış.Galiba lcd_init() oluyo ama lcd_clear() çalışmıyor.Arada 100 ms delay koydum yine olmadı.Ne yapmak lazım lcd.c deki delayleri mi değiştirecez?Bunu da denedim bazılarını arttırdım biraz yine bişey değişmedi.
Alıntıları Göster
"Üst satır komple blok halinde çalışıyor" ne demek tam anlayamadım. üst satırda ne gözüküyor?
quote:
Orijinalden alıntı: psiko
"Üst satır komple blok halinde çalışıyor" ne demek tam anlayamadım. üst satırda ne gözüküyor?
bir de clear'dan sonra 5ms delay koymayı dene istersen.
quote:
Orijinalden alıntı: psiko
bir de clear'dan sonra 5ms delay koymayı dene istersen.
Alıntıları Göster
lcd.c dosyasında var zaten cleardan sonra 2ms delay ayrıca kullanmaya gerek var mıdır?
quote:
Orijinalden alıntı: trigger
lcd.c dosyasında var zaten cleardan sonra 2ms delay ayrıca kullanmaya gerek var mıdır?
Alıntıları Göster
evet doğru. kendi içinde zaten 2ms bekleme var.
quote:
Orijinalden alıntı: psiko
evet doğru. kendi içinde zaten 2ms bekleme var.
Alıntıları Göster
Birde şöyle bir deneme yaptınmı borda kurulan devrelerde bazen temas sorunu yüzünden işlemci hiç çalışmıyor. Ve hatayı yazılımda arıyoruz genelde. PIC e lcd programını değilde basit bir ledi yakıp söndüren bir program yazıp borda kurduğun donanımın sağlıklı çalıştığını test etmeni tavsiye ederim.
quote:
Orijinalden alıntı: rafet32
Birde şöyle bir deneme yaptınmı borda kurulan devrelerde bazen temas sorunu yüzünden işlemci hiç çalışmıyor. Ve hatayı yazılımda arıyoruz genelde. PIC e lcd programını değilde basit bir ledi yakıp söndüren bir program yazıp borda kurduğun donanımın sağlıklı çalıştığını test etmeni tavsiye ederim.
trigger senin karşılaştığın sorunun aynısıyla ben de karşılaştım maalesef. devreyi kurdum ve üst satır verdiğin linkteki gibi koyu gözüküyor. neden böyle birşey oluyor acaba? acaba sorun breadboard kullanmamız olabilir mi???