Tuş takımı ve interrupt

Başlatan fuko88, 13 Ekim 2006, 05:47:26

fuko88

Merhaba

CCS'nin kendi sürücülerinden kbd.c sürücüsünü kullanıyorum. Kullanmada bir sıkıntım yok.
Şu anda kullanımım şu şekilde:

char k;
do{
k=kbd_getc();
.
.
.
.
}while(1);


yani ben sürekli bir döngü içerisinde tuşları kontrol etmek zorundayım.

bunu int_rb ile yapmaya kalktığımda ise bu sefer kesme alt programından hiç çıkamıyor. ISIS'te baktığımda portb'nin sürekli bir değişim içinde olduğunu görüyorum. Bundan dolayı kesmeden hiç çıkamıyor program. kbd.c sürücüsü kullanarak tuş okuma işini otomatik hale getirebilir miyim?
Yani tuşa basıldığını kesme alt programı kendisi anlasın. Böylece mikrdenetleyiciyi uyku moduna da geçirebileceğim. Şu anda sürekli çalışıyor.

Teşekkürler.

krian

aynı sorunu ben de yasıdım.asıl soruyu sorarken cvbını da veriyosun satırdaki pinlerin hepsini bir or kapısında topla cıkısı int girisine bagla klavye okuma programını da fonksiyon haline getir ve herhangibir tusa basıldıgı anda int girisi aktif olsun senin okuma fonksiyonunu calıstırsın.bu arada fonksiyonu sonsuz döngüye sokma.nasıl olsa int girisi devamlı tetikte tusa basman icin.hadi kolay gelsin..

Ziya

kesme falg'i ni kesme rutinine girdiğinde silmen gerekir. Yoksa retie komutunu çalıştırdıüın anda tekrar kesme rutinine dönersin.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

seferuzan

bu sürücünün  kullanımı ve isis deki baglantılarını anlatırmısınız.sorun var kullanamıyorum bunu.acil cevap bekliyorum teşekkürler

fuko88

Alıntı yapılan: "seferuzan"bu sürücünün  kullanımı ve isis deki baglantılarını anlatırmısınız.sorun var kullanamıyorum bunu.acil cevap bekliyorum teşekkürler
Program böyle
CCS de Pathlerin doğru olduğuna emin ol
port_b_pullups(TRUE);
bu komutu da unutma
Aşağıda PIC16F877 ile bağlantı şeması da var.

#include "16F877.h"
#fuses HS, NOWDT, NOPROTECT, PUT, BROWNOUT, NOLVP
#use Delay(Clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,BITS=8,PARITY=N)

// Remember that pins C6 and C7 need to go through the max232

// Initialize Pin B0 to low.
#include <lcd.c>
#include <kbd.c>



void main()
{
CHAR k;
port_b_pullups(TRUE);

lcd_init();
kbd_init();
k=kbd_getc();
lcd_putc( k  );



Göktuğ

Sema cizmek cok onemli bir ugrastır. Bu vakit kaybı olarak gorulmektedir.Ancak  hızlı hızlı cizmek iyi değildir.

seferuzan

dostum yardım isteğine minnettarım.ama herkesin anlayacağı şekilde su şema yerıne progrmın ccs c kodlarını ve proteus u tek bir zip e sıkıştırıp bir yere yuklesen de biz de indirip ordan baksak.teşekkğrler

fuko88

Alıntı yapılan: "goktug1217"Sema cizmek cok onemli bir ugrastır. Bu vakit kaybı olarak gorulmektedir.Ancak  hızlı hızlı cizmek iyi değildir.

Tamam goktug abi mesaj alinmistir  :oops:

Arkadasim
saat su anda 2:00
Ama ben yinede dosyalari toparladim
ISIS
HEX
C kodlar

lin silindi

seferuzan

emeğin için teşekkür ederim kardeşim

seferuzan

kardeş senın gonderdiğin isis deki devre ve hex dosyası sorunsuz çalışıyor.fakat ben tekrar hiç bir değişiklik yapmadan aynı kodları tekrar derlediğimde yenı hex dosyası ile calısmıyor.senın gonderdıgın hex dosyası 8kb.yenı derlenen 5 kb ye dusuyor.sorun sence nerde.kodları aynen baska bir yenı ccs editoru acıp yapıstırıp işlemleri bastan da yaptım gene anynı.çalışmıhyor.eksik bir seyler mı var?
neden ben derlediğimde aynı boyutta hex dosyası olusmuyor;?

fuko88

Alıntı yapılan: "seferuzan"kardeş senın gonderdiğin isis deki devre ve hex dosyası sorunsuz çalışıyor.fakat ben tekrar hiç bir değişiklik yapmadan aynı kodları tekrar derlediğimde yenı hex dosyası ile calısmıyor.senın gonderdıgın hex dosyası 8kb.yenı derlenen 5 kb ye dusuyor.sorun sence nerde.kodları aynen baska bir yenı ccs editoru acıp yapıstırıp işlemleri bastan da yaptım gene anynı.çalışmıhyor.eksik bir seyler mı var?
neden ben derlediğimde aynı boyutta hex dosyası olusmuyor;?

Sana gonderdigim programin butununun hexi. Ancak sana tüm programi gönderemeyeceğim için c kodları sildim.

Zaten programın o parçası ile işin yok daha fazla aklın karışmaz diye düşündüm.
Şimdi sana gönderdiğim c kodları derledim. sana gönderdiğim ISIS şemasında yeni derlediğim 5kb hexi gösterdim ve çalışıyor.

Sen derlerken hata yapıyor olmayasın?