kesme ve print sorunu

Başlatan Hattusa, 22 Kasım 2011, 20:40:14

Hattusa

selam arkadaşlar bir konuya kafam takıldı.
bir devre yapmayı düşündüm, yapmak istediğim kesme kullanarak oluşturduğum 300 hertzlik bir sinyalim var ve 3 pinimde bu sinyaller oluşmakta, buraya kadar sorun yok ve 300 hertzi oluşturmak için kesme ile bir sayaç oluşturup 3,4mS ye ulaştığında bir alt rutinde pinleri high yapıyor ve kare dalga sinyalimi oluşturuyorum, isis skobunda sinyaller tamam ve çevrim sürem 3,4mS ama ne zaman ki ana programda lcd ye yazı yazsam benim 300hertz uçuyor gidiyor, bu print süresi 100mS mi sürüyor  :D
Declare  LCD_CommandUs  1000   ' Time to wait (in uS) between commands sent to the LCD
Declare  LCD_DataUs 250   ' Time to wait (in microseconds) between data sent to the LCD
bu değerlerle oynuyorum yine tutturamıyorum.
şimdi kesme ile oluşturduğum bu 300 hertzlik sinyali bozmadan ben ana programda yazmak istediklerimi nasıl print edebilirim?

konu ile ilgili şema ve bas dosyası  ek'te usta arkadaşlardan yardım bekliyorum...

http://www.dosya.tc/server6/mYvUwi/YeniKlas_r.rar.html
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Maxim

ben 300hz göremedim proteusta print etmeden

neyse o ayrı bir konu
bu şekilde olmaz
yazılım interrupt kullanmışsın, picbasic gibi

print komutu geldimi senin 300hz bekler bekler olur ~100hz
olmaz yani kısacası
olması için donanım interrupt kullanman şart

On_Interrupt GoTo KESME
on ile interrupt arasındaki alt çizgi hardware interrupt demek oluyor biliyorsun

On Interrupt GoTo KESME
böyle oldumu soft interrupt

Hattusa

maxim hocam ilginiz için teşekkür ederim. sanırım dersimize iyi çalışmaışız, yani konuyu anlamamışız. birde öyle araştırayım.konuyu biraz açabilirmisiniz, kolaylık açısından...
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Maxim

#3
yani söyleyecek çok birşey yok, öyle işte 2 tip interrupt var protonda
birincisi picbasic gibi olan software interrupt
komut satırında delayms 2000 yaz, yani 2 saniye beklet senin interruptta 2 saniye bekler
o yüzden picbasicte bekletmek gerektiğinde 1ms 1ms beklemeler konurki interrupt arkada devam etsin

diğerinde ise gerçek interrupt gibidir
sen 2 saniye beklet veya print et, o çalışır

help te açıklamalar var
zordur ama 2. seçenek
karışıktır, donanımı iyi bilmek ve ayarlarını iyi yapmak lazım

pwm.c

3 adet HPWM bulunan PIC tercih etmen daha iyi olur.
HPWM 1,128,300  komutu ile 300hz oluşturabilirsin.  pwm donanımsal olduğu için dier işlemleri yaparken sinyalin bozulmaz.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-