MPLAB debug sırasında RCIF bitini nasıl set ederim?

Başlatan zakbay, 04 Ocak 2012, 10:19:36

zakbay

Mplab üzerinde 16f628 hitech 9-60pl2 ile hardware usart kullanmaya çalışıyorum.

Asıl problem
volatile unsigned char a olarak tanımladığım değişken isis üzerinde variable penceresinde çıkmıyor.
mplab üzerinde bu değişkenin adresini alıp watch window da adres girerek bu değişkeni takip edebiliyorum.

mplab üzerinde debug etmek istediğimde programı kesme rutinine dallandırmak istiyorum. bunun için rcif bayrağını set etmek istiyorum.
Bunun bir yolu varmıdır?
Tek dostum çalışmak...

FEHMİ_ASM

#1
 Sorunu, RCIF bayrağını set edip kesmeye girmek istiyorsun ve giremiyorsun olarak algıladım.
 
  RCIF  sadece okunabilir bir bayraktır ve  yazılımla set edemezsin. Sadece RCSTA'ya 8 bitlik veri geldiğinde Set olur ve RCREG okunduğunda Reset olur. Bunu MPLAB'da gözlemlemek için RCIE ve genel kesmeleri aktif edip ikincil cihazdan veri gelmesi yeterli.

zakbay

Alıntı yapılan: FEHMİ_ASM - 04 Ocak 2012, 11:01:00
MPLAB'da gözlemlemek için RCIE ve genel kesmeleri aktif edip ikincil cihazdan veri gelmesi yeterli.

Bunu biraz açabilirmisiniz. isis te virtual terminal bağlayıp bu işi çözüyorduk. mplab da da böyle bir seri veri girişi için bir bölüm var mı? ya da pc nin seri portundan mı seri data girişi yapmak gerekiyor.
Tek dostum çalışmak...

FEHMİ_ASM

    RCIF ile kesme algılayabilmek için (sanırım) GIE ve PEIE bitini L-1 yapman yeterli.

    ISIS'ta Virtual Terminal kullanmak istemiyorsan, ISIS'taki Compim'i bilgisarda Sanal Seri Port kullanarak Mplab'daki programa erişebilirsin. Eltima'nın programlarından birisini indirebilirsin.

    Ayrıca Mplab'ın kendisinin Usart veri giriş ya da çıkış dataları oluşturacak şekilde bir özelliği yok. Bunun için Simülasyon programlarını kullanmalısın.

zakbay

kesmeleri ayarladım orada bir sıkıntı yok
isiste te debug yaparken virtual terminal ile veri gönderince kesme oluşuyor.

ben mplab ile debug yapmak istediğimde seri veriyi gönderme işini çözemedim
aşağıdaki linke yapmışlar
http://www.microchip.com/forums/m284716-print.aspx


fakat tam anlayamadım
mplab -> properties -> UART1 IO  kısmından input file göstermek gerekiyormuş

siteden aldığım verileri

wait 100 us
68 65 6c 70 0d 0a
rand 10 100 us
68 65 6c 70 0d 0a
rand 10 100 us
68 65 6c 70 0d 0a
rand 10 100 us
68 65 6c 70 0d 0a
rand 10 100 us
68 65 6c 70 0d 0a

txt dosyası olarak kaydedip input file olarak gösterdim debug çalıştırdığımda bir değişiklik olmadı

http://ww1.microchip.com/downloads/en/DeviceDoc/51519B.pdf
burada da mplab kullanma kılavuzu debugger için güzel şeyler varmış inceliyorum.
Tek dostum çalışmak...

FEHMİ_ASM

#5
   Sadece ISIS kullandığınızda veri alabiliyor ama ISIS'ı Mplab altında kullandığınızda sorun yaşıyorsunuz öyle mi?
 
   Mplab'ın Usart'a karışması biraz ilginç. Aklıma MPLAB ayarlarınızdan başka birşey gelmiyor. Mplab'ın gelişkin ayarlarında değişiklik yaptıysanız tekrar kurmayı deneyin. Bu arada, Mplab'ın eski sürümlerinden kullanmıyorsunuz değil mi?

zakbay

Mplab 8,63 kullanıyorum.
isiste veri alabiliyorum orada sorun yok (isis kullandığımda PIC CPU VARIABLE penceresine hiçbir değişken düşmüyor adreslerini elle girmem gerekiyor zahmetli oluyor)
isisteki bu problem için mplab altında bir ayar varmı bilmiyorum.
----------------------------------------------------------------------------------------------------------
onun için mplab üzerinde mplab'ın kendi simülatörünü kullanmaya çalışıyorum.
mplab altında debugger olarak mplab sim kullanıyorum (isis değil)
----------------------------------------------------------------------------------------------------------

mplabın birçok debugger özelliğinden habersizmişim sorun orada başlıyor :)
Tek dostum çalışmak...

FEHMİ_ASM

#7
  Mplab Sım kullanarak RCIF kesmesi oluşamaz. Çünkü Mplab, böyle bir kesmenin oluşabilmesi için dll dosyası ile oluşturulmuş bir COM aygıtına ihtiyaç duyar. Bu da Mplab'ın işi değil, ona iliştirilmiş, onun desteklediği bir Simülasyon programı'dır.

Üstelik emin olmak için az önce ben de denedim.

  Hem madem Mplab kullanıyorsunuz, Mplab altında ISIS'ı kullanırken neden değişkenleri Mplab-Watch penceresinden izlemiyorsunuz?

zakbay

Alıntı YapMplab altında ISIS'ı kullanırken neden değişkenleri Mplab-Watch penceresinden izlemiyorsunuz?

isisi mplab dan bağımsız olarak kullanıyorum. Bu dediğinizi nasıl yapabilirim.
Mplab altında isisle devreyi çalıştırıp mplabda da adım adım kodu çalıştırıp değişkenleri mplab-watch penceresinden nasıl izleyebilirim.


Debugger menüsü altında isis görünmüyor bir yerlerden ilave etmek mi gerekiyor
Tek dostum çalışmak...

justice_for_all

buyuk ihtimal isisin mplaba uyumlu degil isis versiyonun ne
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

zakbay

Mplab 8,63 kullanıyorum.
isis 7.7 sp2

ama hangisini önce kurdum onu hatırlamıyorum

bu arada isise baktım da protonla birlikte gelen isis miş.

bir ayrı kurmayı deneyeyim.
Tek dostum çalışmak...

justice_for_all

mplabın en ust versiyonunu kurun isisi kurduktan snra mplabı kurun
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

zakbay



evet yeni bir şey daha öğrendim sayenizde
isis 7.7 sp2 yi şimdi kendi başına tekrar kurdum çalıştı artık mplab altında isis kullanabileceğim değişkenler mplabdan simülasyon isis ten.
Tek dostum çalışmak...