| Yazar | Mesaj |
umutozkans | | Tarih: 25.09.2008, 14:58 Mesaj konusu: Motor devir sayısı gösterme-PIC | |
| Merhaba;
Motorun devir sayısını RPM olarak LCD ekranda göstermeye çalışıyorum. Ekteki devre ve kodu yazdım ama çalışmıyor. Acaba nerde sorun var?
-----------------------------------------------------
|
|
onur_zafer | | Tarih: 25.09.2008, 17:09 Mesaj konusu: | |
| yazılar okunmuyor kod olarak eklersen daha ii olur
|
|
umutozkans | | Tarih: 26.09.2008, 14:12 Mesaj konusu: | |
| #include<pic.h>
#include<delay.c>
#include<stdio.h>
#include<lcd.c>
unsigned char sayac=0;
unsigned char sayim=0;
unsigned char hiz;
unsigned char sn=0;
unsigned char ilk=0;
unsigned char goster[]=" ";
void interrupt motor_hizi(void)
{
if(ilk==0)lcd_init();
ilk=1;
sayac++;
sn++;
if(sayac==2)
{
tmr0=61;
sayac=0;
hiz=sayim+sayim/4;
sayim=0;
}
if(sn>=20)
{
sn=0;
lcd_clear();
sprintf(goster,"%d",hiz);
lcd_puts(goster);
}
t0ıf=0;
}
main(void)
{
trısb=0;
trısa=1;
t0cs=0;
psa=0;
ps0=1;
ps1=1;
ps2=1;
tmr0=61;
t0ıe=1;
t0ıf=0;
ei();
for(;;)
{
while(ra0==0);
sayim++;
while(ra0==1);
}
}
|
|
ozmen8 | | Tarih: 27.09.2008, 10:33 Mesaj konusu: | |
| Bu kodlar Prof.Dr.doğan ibrahim hocamızın pıc ile dc motor kontrol kitabında yer alan dcmotor rpm hesaplama kodları.
hata;
1.include dosyalarını kopyalanmamış olabilir.
2.pıc programlarken ona uygun configurasyonları seçmiyor olabilirsin.
3.kullandığın derleyicinin bu üst versiyonu kullan.
not:bu kodlar tarfımdan denenmiş olup %100 çalışıyor.Bence derleyici ayarları hatası.Kolay gelsin
|
|
umutozkans | | Tarih: 06.10.2008, 11:36 Mesaj konusu: | |
| 1. include dosyasını kopyaladım
2.uygun konfigürasyonu kitaba göre aynen yaptım
3.Derleyiciyi kendi sitesinden indirdim.
ama devreyi kurunca çalışmıyor.Ya da proteusta simüle edebilir miyim, proteusta IR alıcı ile sinyal üretemiyorum.
|
|
umutozkans | | Tarih: 16.10.2008, 11:57 Mesaj konusu: | |
| Devre ve yapıyı komple kurdum. Motor dönüyor enkoder çıkışı pals veriyor. Ama kod devir/sn olarak yazılmış. Ben de "hiz=sayim+sayim/4; " satırını 60 ile çarptım RPM oldu ama LCD 60, 120,180 RPM gibi değerler gösteriyor ve 3. hane abuk subuk çıkıyor.Ara değerler yok yani.
1.
Programda her 100 ms'de (50 ms 'de kesme oluşuyor sayaç =2 olunca 100 ms) bir kesme ile hız hesaplanıyor. Ben bunu her 50 ms'de yapmayı düşünüyorum. Ama nasıl? (En iyisi her pals geldiğinde olmalı ama kod komple değişmeli galiba, onu bilmiyorum.)
2.
LCD ekranda 3. hane çıkmıyor bunu nasıl halledicem. (örn. 180 yerine 18|| çıkıyor)
yardımcı olursanız sevinirim.
|
|
esb72 | | Tarih: 16.10.2008, 16:58 Mesaj konusu: | |
| umutozkans yazmış: Devre ve yapıyı komple kurdum. Motor dönüyor enkoder çıkışı pals veriyor. Ama kod devir/sn olarak yazılmış. Ben de "hiz=sayim+sayim/4; " satırını 60 ile çarptım RPM oldu ama LCD 60, 120,180 RPM gibi değerler gösteriyor ve 3. hane abuk subuk çıkıyor.Ara değerler yok yani.
1.
Programda her 100 ms'de (50 ms 'de kesme oluşuyor sayaç =2 olunca 100 ms) bir kesme ile hız hesaplanıyor. Ben bunu her 50 ms'de yapmayı düşünüyorum. Ama nasıl? (En iyisi her pals geldiğinde olmalı ama kod komple değişmeli galiba, onu bilmiyorum.)
2.
LCD ekranda 3. hane çıkmıyor bunu nasıl halledicem. (örn. 180 yerine 18|| çıkıyor)
yardımcı olursanız sevinirim.
selam,
sprintf(goster,"%d",hiz); satırını
sprintf(goster,"%3d",hiz);
olarak değiştirimisin?
kolay gelsin
|
|
umutozkans | | Tarih: 17.10.2008, 13:44 Mesaj konusu: | |
| peki kesme olayını nasıl yapıcaz.
|
|
esb72 | | Tarih: 17.10.2008, 14:56 Mesaj konusu: işlemci frekansı | |
| selam,
işlemci frekansı pic.h dosyasında kalmış.header file içeriğini en üste kopyalarmısın.ayrıca main procedure içinde belli başlı port donanım ayarlarını göremedim..bunlar oluşturulduda sonradan senmi sildin?
kolay gelsin
|
|
umutozkans | | Tarih: 17.10.2008, 16:47 Mesaj konusu: | |
| [/quote]işlemci frekansı pic.h dosyasında kalmış.header file içeriğini en üste kopyalarmısın. Alıntı:
Ne demek istediğini anlayamadım. Ama konfigürasyonda hiç bi değişiklik yapmadım. Ayrıca sprintf(goster,"%3d",hiz);
yapınca sadece imleç 4. sütüna kaydı 3. sütün(hane yine aynı)
|
|
|